背景
1、项目为单springboot项目,平常是通过手动启动。项目在gitlab下。
2、前端为html+js。项目部署在docker下的nginx下。项目在gitlab下。
3、jenkins是通过docker compose部署的。
部署后端项目
1、新建任务
2、输入项目名称后构建maven项目
3、配置源码管理
4、选择构建触发器和构建环境
5、build
clean package -Ptest
点击高级,配置相关的maven(maven配置在liunx的指定目录下)
6、配置ssh
#第一步是进入到服务器中生成好的jar包的目录下
# 因为jenkins部署在docer下,并挂载。所以要进入挂载的相关数据卷地址下。(此目录可以在不配ssh前先打包,打包成功会输出相关目录)
cd /opt/data/docker-compose/vol_dockers/jenkins_home/workspace/name/target
#第二步是根据jar包的名字获取运行的pid,并且将该进程杀死
ps -ef | grep 0.0.1-SNAPSHOT.jar | grep -v grep | awk '{printf $2}' | xargs kill -9
#最后一步就是将这个jar后台启动了,并且将日志输出到warpper.log中。
nohup java -jar 0.0.1-SNAPSHOT.jar >name.log &2>1 &
部署前端
前端和后端流程差不多
最后ssh不同
#停止docker中的nginx容器
docker stop c3
# 删除 (nginx部署在docker下,下方目录是docker挂载的数据卷目录)
rm -rf /opt/data/nginx/nginx-server-conf/static
# 进入到服务器中生成好的jar包的目录下
cd /opt/data/docker-compose/vol_dockers/jenkins_home/workspace/name
# 移动打包好的目录到docker挂载目录中
mv static/ /opt/data/nginx/nginx-server-conf
# 重启docker 的nginx容器
docker start c3