前言:
期末作业是将学期内作业系统完善,并打包成docker镜像。
阅读需求后发现本学期内我做的项目并没有满足最终需求,且前端过于简陋。
这里我选择重做一套更切合的系统,不过由于技术都曾经描述过,故问将制作镜像作为重点,对系统只进行非常简略的描述。
一.系统现状:
后端大框架为 SpringBoot 通过Ctrler 映射分发请求,通过Mapper操作数据库,Service负责中层业务逻辑。
数据库采用 Mysql,使用 Mybatis 与系统连接
前端使用 Vue框架。 调用后台接口展示内容。
二.项目打包:
首先将Vue项目请求地址改为相对地址
然后编译整个Vue项目
最后将输出文件夹dist中的页面全部复制到Java 项目中的 static 目录下,并执行install maven生命周期
最后测试生成的Jar包
可以正常运行并登录。
三.镜像打包
3.1 拉取官方os镜像,并部署示例,这里选择ubuntu
端口映射则指定在SpringBoot中设置的8848端口。
3.2 上传需要的文件
这里需要的一个是打包好的Jar包,另一个是数据库初始化脚本。
可以看到成功上传了文件。
3.3 mysql 配置
使用apt-get安装mysql,建立用户并导入初始化脚本。
3.4 jre配置
3.5启动项目运行
可以看到在容器外映射的8848端口可以正常访问。
3.6 启动项配置
测试配置启动项失败,转而编写启动脚本并改变入口点。
启动脚本构成很简单,只有两行
一是启动mysql服务
services mysql start
二是运行jar包
java -jar /wp/hw0.0.1.jar
至此,符合要求的示例构建完成。
3.7 镜像打包
下面将示例打包成为镜像
通过commit指令可以将创建的示例打包成镜像,本例打包顺序如下
1.原示例打包成为 test/proj 镜像,产生test实例,修改入口点为启动脚本 /start.sh
2.test实例打包成为 test/submit 镜像。
3.8 本机回归测试
实例化一个 test/submit 镜像后台守护运行,接管8848端口。
等待二十秒左右,打开浏览器,可以看到页面正常工作。
本机回归正常。
3.9 线上回归测试
将镜像推送到云端
清除本地信息并重写拉取。
运行后结果与上述一致,测试通过。
博客地址(本文):
https://blog.csdn.net/baidu_34626913/article/details/106822507
git地址:
https://github.com/WindJ0Y/-homework-final
docker镜像名:
registry.cn-beijing.aliyuncs.com/springwinter/17301147-jeefinal:0.0.1
一句话部署:
docker run -itd --name=test -p 8848:8848 registry.cn-beijing.aliyuncs.com/springwinter/17301147-jeefinal:0.0.1
20秒后打开 127.0.0.1:8848 即可