使用docker、Jenkins、Git集成SpringBoot项目并且实现自动化容器部署

前言

1.如果使用的是阿里云的服务器的话,Jenkins容器运行起来可能访问不到,需要登录阿里云的控制台进行安全设置
在这里插入图片描述
2.如果使用的是搬瓦工的服务器的话,是直接能够访问的。

这两种服务器本人亲自验证过。

1.登录远程服务器

我买的是阿里云的服务器,新用户1核2G内存40G硬盘空间,一年七十多块,还是蛮划算的。我是借了别人账号注册的。

ssh -p 22 root@120.24.22.xx

参数说明:22为ssh服务端口,不过这个端口可以修改。
在这里插入图片描述

2.安装jenkins
  • 2.1 下载tomcat、jdk、maven,同时配置jdk和maven的环境变量(环境变量配置省略)
    在这里插入图片描述
  • 2.2 将jenkins.war放到tomcat的webapps目录下
  • 执行下面命令,将jenkins.war发布
apache-tomcat-8.5.51/bin/catalina.sh start

在这里插入图片描述

(https://blog.csdn.net/weixin_43317510/article/details/88932818)。
注意:如果使用的是阿里云的服务器的话,刚运行起来的jenkins容器通过ip和端口是访问不到的,需要设置一下

3.配置jenkins
  • 3.2 获取jdk的安装目录
echo $JAVA_HOME

在这里插入图片描述

  • 3.3 JDK环境安装
    在这里插入图片描述
  • 3.4 配置MAVEN
    在这里插入图片描述
    在这里插入图片描述
  • 3.5 安装maven插件
    在这里插入图片描述
4.使用Jenkins自动化部署Springboot项目
  • 4.1 新建一个任务
    在这里插入图片描述

  • 4.2 配置github账号和项目仓库地址
    项目仓库地址
    在这里插入图片描述
    github的账号和密码
    在这里插入图片描述

  • 4.3 项目打包
    在这里插入图片描述

  • 4.4 开始构建项目
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    以上的步骤已经实现了项目的集成和打包功能,但未实现自动化部署。下面将进行自动化部署演示

5.Jenkins自动化部署项目
  • 5.1 新建一个目录,用来存放Dockerfile、shell脚本、Jenkins打包好的项目jar包
  mkdir /usr/snowflake

在这里插入图片描述
上图中的jar包在Jenkins对项目打包完成以后,通过shell脚本就会迁移到上图目录中。

  • 5.2 编写Dockerfile文件
FROM java:8
# 指定当前操作目录
WORKDIR /usr/snowflake
#指定对外端口号
EXPOSE 8081
#启动java程序
#--spring.profiles.active=dev 多环境下指定环境 。 -c为清除以前启动的数据
ENTRYPOINT ["java","-jar","snowflake-core.jar","-c"]
  • 5.3 编写shell脚本(snowflake.sh)
    在这里插入图片描述
#操作项目路径(Dockerfile存放的路径)
BASE_PATH=/usr/snowflake
# 源jar路径即jenkins构建后存放的路径
SOURCE_PATH=/root/.jenkins/workspace
#docker 镜像/容器名字或者jar名字 这里都命名为这个
SERVER_NAME=snowflake
#容器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/snowflake-core-1.0.2.jar 迁移至 $BASE_PATH 目录下<<<"
#/root/.jenkins/workspace/snowflake/snowflake-core/target/snowflake-core-1.0.2.jar  //jenkins构建完成后jar包的位置,这个位置在jenkins构建的控制台可以看到
#把项目从jenkins构建后的目录移动到我们的项目目录(存放Dockerfile的目录)下同时重命名
 mv $SOURCE_PATH/$SERVER_NAME/snowflake-core/target/snowflake-core-1.0.2.jar $BASE_PATH/snowflake-core.jar
# 给文件赋权
 chmod 777 /usr/snowflake/snowflake-core.jar
 echo ">>迁移完成<<<"

# 构建docker镜像
        if [ -n "$IID" ]; then
                echo ">>>存在$SERVER_NAME镜像,IID=$IID<<<"
                echo ">>>停止容器$SERVER_NAME<<<"
                # 停止容器
                docker stop $SERVER_NAME
                echo ">>>删除容器$SERVER_NAME<<<"
                # 删除容器
                docker rm $SERVER_NAME
                echo ">>>删除原始镜像<<<"
                # 删除旧的镜像
                docker rmi $IID
                echo ">>>开始构建新的镜像<<<"
                cd $BASE_PATH
                docker build -t $SERVER_NAME .
        else
                echo ">>>不存在$SERVER_NAME镜像,开始构建镜像<<<"
                cd $BASE_PATH
                docker build -t $SERVER_NAME .
        fi

# 运行docker容器
# --name docker-test                 容器的名字为docker-test
#   -d                                 容器后台运行
#   -p 3636:3636                       指定容器映射的端口和主机对应的端口都为3636
#   -v /usr/ms_backend/:/usr/ms_backend/   将主机的/usr/ms_backend/目录挂载到容器的/usr/ms_backend/ 目录中(不可少每次本地更新jar包重启容器即可,不用重新构建镜像
docker run --name $SERVER_NAME -v $BASE_PATH:$BASE_PATH -d -p 8081:8081 $SERVER_NAME
  • 5.4 Jenkins后台配置编写好的shell脚本
    在这里插入图片描述

  • 5.5 构建项目
    在这里插入图片描述
    构建镜像、运行容器
    在这里插入图片描述
    查询镜像生成情况
    在这里插入图片描述
    查询容器运行情况
    在这里插入图片描述
    测试项目是否能够正常访问
    在这里插入图片描述
    本地代码修改后,推送到代码仓库,再次构建部署
    在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值