七仔的博客

七仔的博客GithubPages分博

0%

【Jenkins&Docker部署系列】三、SpringBoot的构建的和部署

【Jenkins&Docker构建部署系列】是我在实践中走过的一条路,踩过一些坑,在这里记下,以防以后再犯哈哈哈哈

【Jenkins&Docker部署系列】三、SpringBoot的构建的和部署

1.新建选择【构建一个Maven项目】
2.Build的Root POM为

1
pom.xml

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

欢迎关注我的其它发布渠道