我们以jenkins为例,其本质就是从远程仓库拉取代码,然后本地编译打包,然后上传到目标服务器执行启动命令,简化过程如下:
那么在一些简单的项目中,我们可不可以完全自己写一个脚本来做打包部署呢,答案是可以的...;如果已经存在项目目录,则进入目录拉取最新代码
使用mvn命令编译打包,并输出可执行jar到target目录,如果编译失败则退出执行
找出服务进程,并发送kill执行进行终止服务进程,并且休眠10s,给服务进程足够的时间处理剩余的事情...从项目目录的target文件夹拷贝可执行jar到项目工作目录
再次检查服务进程是否已经终止,如果没有终止则强行终止(理论上10s可以正常终止,休眠时间可按需调整)
通过nohup java -jar命令后台运行服务...docker start
sudo systemctl enable docker
项目路径不再重复创建,还是基于上一小节的路径,在项目工作路径创建Dockerfile文件,内容如下:
FROM openjdk...服务镜像,并定义传入三个入参
停止老的docker中的java服务容器,并移除
找到老的java服务镜像,并移除
启动新的java服务容器,启动成功后打印启动成功日志
执行start.sh脚本打包部署: