docker+git+jenkins持续集成-自动部署(Spring boot、Spring MVC)

配置登录远程部署服务器信息
在这里插入图片描述

填写部署服务器信息
在这里插入图片描述
进入构建的项目
在这里插入图片描述
编辑构建配置信息
在这里插入图片描述

121        #远端服务器名称已在前面配置好,系统配置-SSH Servers
target/jenkinsTest.jar    #打包后生成的源文件
target/   #移除的部分
/usr/java/dockerApp/jenkinsTest  #推送到远端部署服务器保存的目录
#运行部署脚本docker.sh
BUILD_ID=dontKillMe /usr/java/dockerApp/jenkinsTest/docker.sh

在这里插入图片描述
测试项目(Spring boot 项目,部署jar包)
https://gitee.com/HP_mojin/jenkinstest01

部署服务器端
在这里插入图片描述

Dockerfile文件

FROM java:8
MAINTAINER mojin
COPY jenkinsTest.jar app.jar
CMD java -jar app.jar
EXPOSE 8010

example01app.jar,app.jar 多个项目Dockerfile中jar名不能重复

FROM java:8
MAINTAINER mojin
COPY example01-0.0.1-SNAPSHOT.jar example01app.jar
CMD java -jar example01app.jar

docker.sh




#!/bin/bash

echo "开始部署…………"


# 源jar路径  即jenkins构建后存放的路径
#SOURCE_PATH=/var/jenkins_mount/workspace
#SOURCE_PATH=/var/jenkins_mount/workspace/jenkinstest05/target

prot_r=8010
prot_c=8010
BASE_PATH=/usr/java/dockerApp/jenkinsTest
#docker 镜像/容器名字或者jar名字 这里都命名为这个【必须为小写】
SERVER_NAME=jenkinstest05
#容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
#镜像idls
IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')

#echo "最新构建代码 $SOURCE_PATH/$SERVER_NAME/target/ms_backend.jar 迁移至 $BASE_PATH ...."
#把项目从jenkins构建后的目录移动到我们的项目目录下同时重命名下
#cp $SOURCE_PATH/jenkinsTest.jar $BASE_PATH/jenkinsTest.jar

echo "修改*.jar文件的权限"
chmod 777 $BASE_PATH/jenkinsTest.jar
#echo "迁移完成"

# 构建docker镜像
        if [ -n "$IID" ]; then
                echo "存在$SERVER_NAME镜像,IID=$IID"
				echo "停止运行中的容器:docker stop $CID"
                 docker stop $CID   # 停止运行中的容器
				 echo "删除原来的容器:docker rm $CID"
                 docker rm $CID     ##删除原来的容器
				 echo "删除原来的镜像:docker rmi $IID"
                 docker rmi $IID   ## 删除原来的镜像
				 

        else
                echo "不存在$SERVER_NAME镜像,开始构建镜像"
                     
       fi
       

 # 构建镜像 
echo "构建镜像"
cd $BASE_PATH
echo "docker build -t $SERVER_NAME ."  
docker build -t $SERVER_NAME .
echo "$SERVER_NAME 容器创建完成"

# 运行容器
 # --name docker-test                 容器的名字为docker-test
 #   -d                                 容器后台运行
 #   -p 8090:8090 指定容器映射的端口和主机对应的端口都为8090
 #   -v /usr/local/dockerApp/blog-parent:/usr/local/dockerApp/blog-parent   将主机的/usr/local/dockerApp/blog-parent目录挂载到容器的/usr/local/dockerApp/blog-parent 目录中
#docker run --name $SERVER_NAME -v $BASE_PATH:$BASE_PATH -d -p $prot_r:$prot_c $SERVER_NAME
#docker run -d -p 8083:8080 --name mytomcat7 tomcat:7
echo "$SERVER_NAME 容器开始运行:docker run -d -p $prot_r:$prot_c --name $SERVER_NAME $SERVER_NAME"
docker run -d -p $prot_r:$prot_c --name $SERVER_NAME $SERVER_NAME
echo "完成部署。"

在这里插入图片描述
在这里插入图片描述
测试项目(Spring MVC 项目,部署war包)
https://gitee.com/HP_mojin/jenkins-test

Dockerfile文件

FROM tomcat:7
#维护者
MAINTAINER mojin
#将target下的xx.war拷贝到/usr/local/tomcat/webapps/下
ADD ./*.war /usr/local/tomcat/webapps/
#端口
EXPOSE 8080
#设置启动命令
ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]

docker.sh部署脚本


#!/bin/bash

echo "开始部署…………"


# 源jar路径  即jenkins构建后存放的路径
#SOURCE_PATH=/var/jenkins_mount/workspace
#SOURCE_PATH=/var/jenkins_mount/workspace/jenkinstest05/target
#内部端口
prot_r=8080
#对外映射端口
prot_c=8083
Version=1.0
BASE_PATH=/usr/java/dockerApp/jenkinstest01
#docker 镜像/容器名字或者jar名字 这里都命名为这个【必须为小写】
SERVER_NAME=jenkinstest01
#容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
#镜像idls
IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')
echo "获取IID,CID  ,IID=$IID,CID=$CID"
#echo "最新构建代码 $SOURCE_PATH/$SERVER_NAME/target/ms_backend.jar 迁移至 $BASE_PATH ...."
#把项目从jenkins构建后的目录移动到我们的项目目录下同时重命名下
#cp $SOURCE_PATH/jenkinsTest.jar $BASE_PATH/jenkinsTest.jar

#echo "修改$BASE_PATH/docker.jar文件的权限"
#chmod 777 $BASE_PATH/example01-0.0.1-SNAPSHOT.jar
#echo "迁移完成"

# 构建docker镜像
        if [ -n "$IID" ]; then
                echo "存在$SERVER_NAME镜像,IID=$IID"
				echo "停止运行中的容器:docker stop $CID"
                 docker stop $CID   # 停止运行中的容器
				 echo "删除原来的容器:docker rm $CID"
                 docker rm $CID     ##删除原来的容器
				 echo "删除原来的镜像:docker rmi $IID"
                 docker rmi $IID   ## 删除原来的镜像
				 

        else
                echo "不存在$SERVER_NAME镜像,开始构建镜像"
                     
       fi
       

 # 构建镜像 
echo "构建镜像"
cd $BASE_PATH
echo "docker build -t $SERVER_NAME:$Version ." 
#docker build -t jenkinstest:1.0 .
 
docker build -t $SERVER_NAME:$Version .
echo "$SERVER_NAME 容器创建完成"

# 运行容器
 # --name docker-test                 容器的名字为docker-test
 #   -d                                 容器后台运行
 #   -p 8090:8090 指定容器映射的端口和主机对应的端口都为8090
 #   -v /usr/local/dockerApp/blog-parent:/usr/local/dockerApp/blog-parent   将主机的/usr/local/dockerApp/blog-parent目录挂载到容器的/usr/local/dockerApp/blog-parent 目录中
#docker run --name $SERVER_NAME -v $BASE_PATH:$BASE_PATH -d -p $prot_r:$prot_c $SERVER_NAME
#docker run -d -p 8083:8080 --name mytomcat7 tomcat:7
echo "$SERVER_NAME 容器开始运行:docker run -d -p $prot_c:$prot_r --name $SERVER_NAME $SERVER_NAME:$Version"
docker run -d -p $prot_c:$prot_r --name $SERVER_NAME $SERVER_NAME:$Version
#docker run -d -p 8083:8080 --name jenkinstest jenkinstest:1.0
echo "完成部署。"

在这里插入图片描述
docker images
在这里插入图片描述
在这里插入图片描述
docker ps
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值