8:部署服务器
上一届的武学长毕业前把这个项目丢给了我。他说大部分代码已经写完了,不过还没有部署到服务器上。
由于种种原因。我接下来有别的事要忙,部署这个项目的重任就交给你了😁
本题目所涉及文件为一个小型留言板项目,其中包含前端静态页面、已经编译完成的 Java 后端 jar 包以及数据库初始化脚本。由于项目缺少完整的部署配置,目前无法直接运行。你需要补全部署相关文件,完成 Docker 容器化部署,最终使系统能够正常提供服务。
首先,从Github仓库拉取项目文件。
仓库地址:https://github.com/Carinsay/Glimmer08.git
本项目的后端代码已整合为jar包,前端代码也已提供,现在需要你使用在前一道题学到的技术,把项目真正部署到服务器上并成功运行。
你可以选择如下几个方案完成本题:
方案 A:云服务器部署(加分项)
Section titled “方案 A:云服务器部署(加分项)”如果你拥有云服务器,可以直接部署:
- 腾讯云 / 阿里云 / 华为云学生服务器(腾讯云和阿里云的学生身份能分别免费领取1个月和3个月的免费服务器)(推荐)
- GitHub Student Pack 提供的相关资源
- 其他 Linux 服务器(Azure.microsoft)
要求:
- Ubuntu (推荐) 或其他 Linux 发行版均可
- 最终能够通过公网 IP 访问项目
方案 B:本地虚拟机部署
Section titled “方案 B:本地虚拟机部署”如果没有服务器,可以使用 VMware + Ubuntu
部署流程与服务器一致。
要求:
- 项目能够在虚拟机内部正常访问
- 提供浏览器访问截图即可
例如:
宿主机浏览器 | ↓Ubuntu 虚拟机 | ↓Docker Compose | ↓留言板服务方案 C:Windows WSL 部署
Section titled “方案 C:Windows WSL 部署”如果没有 Linux 环境,也可以使用:
- Windows Subsystem for Linux (WSL2)
要求:
- 在 WSL 环境启动项目
- 浏览器能够访问:
http://localhost目标:让它能在你的服务器上正常跑起来,各项功能都正常运行
后端 jar 包、前端页面、数据库脚本都已经给你了,但 Docker 和 Nginx 的配置文件好像被武学长弄丢了,需要你自己写。
你需要独立编写三个核心配置文件。
首先是后端目录下的 Dockerfile。
要求基于Java 17基础镜像,完成jar包的容器化打包与启动配置。
其次是Nginx的配置文件
需要完成反向代理设置,将根路径正确指向并返回前端静态页面文件,同时将接口路径准确转发至后端容器服务。
最后是根目录下的docker-compose.yml文件
需要统一编排数据库、后端和Nginx三个服务。 在编排时,必须配置正确的启动依赖关系,例如通过健康检查确保后端在数据库就绪后启动,并通过环境变量正确配置容器间的数据库连接。特别注意的是,必须为MySQL服务挂载数据卷以实现数据持久化。
在验收阶段,你需要进行基础功能测试。
启动服务后,在浏览器中访问应用,确认能够正常显示留言列表,并且可以成功发送新留言以及删除已有留言。完成增删操作后,将进入核心的持久化验收环节。你需要执行命令停止并彻底销毁所有容器,等待十秒后重新拉起所有服务。再次访问页面时,必须保证刚才新增的留言依然存在,且删除的留言没有恢复,以此证明持久化配置成功。
最后,请在 GitHub 创建项目仓库,将修复完善后的完整项目代码提交至远程仓库,并按照工程规范进行版本管理,保证提交记录清晰、合理。
请将下面内容整理为一份markdown文档提交。
- 你的 GitHub 仓库链接
- 网页成功访问与功能演示截图
选其中一个提交:
- 公网访问地址以及访问成功的截图
- 虚拟机浏览器访问截图
- WSL 运行后浏览器访问截图
- 修改说明
列出你写过的配置文件:
| 文件 | 修改内容 |
|---|---|
| backend/Dockerfile | 编写后端镜像配置 |
| docker-compose.yml | 编写服务编排配置 |
| nginx.conf | 编写反向代理配置 |
本题提交方式
Section titled “本题提交方式”出题人联系方式
Section titled “出题人联系方式”出题人:
王府井
QQ:3624089541