1.需要用到的软件:jenkins,docker,docker-compose,maven
2.软件搭建工作略过,直接说配置过程,这次涉及到的后端是java打成的jar包,前端vue打成的静态文件;
3.首先git clone前后端项目.git地址使用ssh
这样可以保证每次自动构建的时候不需要输入git账号密码,详细怎么配置使用ssh方式clone这里不想细说;
4.java通过maven构建成jar包,jar包直接放到镜像使用命令即可启动,这里我们编写dockerfile文件;
该命令中,将生成的jar包复制到指定目录,然后设置启动镜像时执行启动java命令;
5.配置docker-compose.yml:
配置中使用了挂载命令,将jar包和日志文件夹挂在出来,links是连接其他镜像进行通信,dpends_on是依赖其他镜像顺序启动;volumes是挂载目录,左边为相对路径的宿主机右边是镜像目录
6.注意事项:
(1)挂载后的目录权限为root,这里我手动chown -R dev.dev 更改了文件夹用户和用户组,否则没有权限,此处不知道是否为操作有误才会出现root权限;
(2)挂载出来的app文件夹需要提前将jar包放到里面,否则启动失败;nginx的配置文件同理;
(3)这里我将jar包文件挂载出来,是因为后续自动部署时将构建的新jar包直接拷贝到文件夹后重启java镜像即可,也可以直接重新构建所有镜像的方式,不过相对较慢;
7.编写自动部署时的前后端可执行文件:
后端:javastart.sh
前端:webstart.sh (该处需要注意,第一次最好使用npm install,否则可能会产生依赖下载补全导致构建失败)
nginx配置: (该处java程序中,需要指定访问路径为 /api)
8.展示一下项目文件存放位置:
9.配置jenkins:
上面的jenkins项目地址和秘钥填入gitlab中:
位置:项目中->setting->Integrations->Push events
-------------------------------------------------------------------------------------------------
以上就是完整一套我的自动部署流程;
本文由 GY 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:
2021/11/19 15:33