【Jenkins&Docker构建部署系列】是我在实践中走过的一条路,踩过一些坑,在这里记下,以防以后再犯哈哈哈哈
【Jenkins&Docker部署系列】三、SpringBoot的构建的和部署
1.新建选择【构建一个Maven项目】
2.Build的Root POM为
Goals and options为
1
| -DskipTests=true clean package
|
3.Post Steps为
1 2
| cd /home/cdss-server BUILD_ID=dontKillMe sh docker.sh
|
这里贴一下docker.sh的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| BASE_PATH=/home/test-server # 源jar路径 即jenkins构建后存放的路径() SOURCE_PATH=/var/lib/jenkins/workspace #docker 镜像/容器名字或者jar名字 这里都命名为这个 SERVER_NAME=test-server #容器id CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}') #镜像id IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')
echo "最新构建代码 $SOURCE_PATH/$SERVER_NAME/target/test-server.jar 迁移至 $BASE_PATH ...." #把项目从jenkins构建后的目录移动到我们的项目目录下同时重命名下 mv -f $SOURCE_PATH/$SERVER_NAME/target/test-server.jar $BASE_PATH/test-server.jar # 备份 datename=$(date +%Y%m%d-%H%M%S) cp $BASE_PATH/test-server.jar $BASE_PATH/backup/test-server-$datename.jar #修改文件的权限 chmod 777 /home/test-server/test-server.jar echo "迁移完成"
# 构建docker镜像 if [ -n "$IID" ]; then echo "存在$SERVER_NAME镜像,IID=$IID" else echo "不存在$SERVER_NAME镜像,开始构建镜像" cd $BASE_PATH docker build -t $SERVER_NAME . fi # 停止docker容器 docker stop $SERVER_NAME # 删除docker容器 docker rm $SERVER_NAME # --name docker-test 容器的名字为docker-test # -d 容器后台运行 # -p 3636:3636 指定容器映射的端口和主机对应的端口都为3636 # -v /home/test-server/:/home/test-server/ 将主机的/home/test-server/目录挂载到容器的/home/test-server/ 目录中(不可少每次本地更新jar包重启容器即可,不用重新构建镜像 docker run --name $SERVER_NAME -v $BASE_PATH:$BASE_PATH -d -p 8090:8090 -e "SPRING_PROFILES_ACTIVE=test" $SERVER_NAME echo "$SERVER_NAME容器创建完成"
|
注意一下, -e “SPRING_PROFILES_ACTIVE=test”是用来选择环境的
这里贴一下Dockerfile的内容
1 2 3 4
| FROM openjdk:11.0.4 WORKDIR /home/cdss-server EXPOSE 8090 ENTRYPOINT ["java","-jar","test-server.jar","-c"]
|
此为博主副博客,留言请去主博客,转载请注明出处:https://www.baby7blog.com/myBlog/91.html