Loading... # 一、简要说明 > **基于Jenkins拉取GitLab的SpringBoot代码进行构建发布到测试环境实现持续集成** > > **基于Jenkins拉取GitLab指定发行版本的SpringBoot代码进行构建发布到生产环境实现CD实现持续部署** # 二、准备Springboot工程 ## 1、IDEA新建工程  ## 2、填写项目工程信息  ## 3、选择Springboot版本和Spring web依赖包  ## 4、Springboot web工程新建完成 > **工程项目新建完成之后,需要等待Maven下载拉取依赖包。**  ## 5、编写一个测的Controller类  ``` package tech.flygo.demo.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; /** * @description: hello demo * @author: flygo * @time: 2022/8/16 10:51 */ @RestController publicclassHelloDemoController{ @GetMapping("/sayHello") public String sayHello(){ return"Hello Jenkins!"; } } ``` ## 6、启动测试工程 > **启动工程,测试工程,默认端口为****8080** ,浏览器访问 **http://127.0.0.1:8080/sayHello**  ## 7、浏览器访问测试结果  # 三、把项目工程提交到Gitlab > **之前我们搭建了Gitlab代码仓库,在Gitlab上创建Git工程,把刚才的工程代码提交到仓库中。** ## 1、登录Gitlab管理后台 > **这个是我的自建的Gitlab地址:****http://192.168.95.130:8929**   ## 2、新建一个空白的Git项目   ## 3、填写工程Git项目信息  ## 4、Git项目创建完成  ## 5、使用IDEA把项目提交到GIt仓库中  ## 6、选择vcs版本控制->Create Git Repository...   ## 7、右键整个工程,选择Git -> Commit Directory...  ## 8、选择文件所有需要,提交到Git  ## 9、填写远程Git项目仓库地址  ## 10、push代码到远程Git仓库   ## 11、在浏览器打开远程Git仓库地址  # 四、Jenkins持续集成 > **在浏览器打开Jenkins管理后台:****http://192.168.95.131:8080/jenkins****,这个之前通过虚拟机搭建好的Jenkins。** ## 1、新建和配置Jenkins任务信息 ### 1.1、新建Jenkins任务  ### 1.2、填写任务信息  ## 2、配置Jenkins项目任务,Git仓库信息 ### 2.1、Jenkins任务详情,填写项目Git仓库信息  #### 如果Git仓库需要密码,添加Jenkins统一管理的用户名和密码     ### 2.2、配置好,进入任务详情   ### 2.3、构建完成,查看构建的日志信息   ### 2.4、查看拉取回来Jenkins拉取回来的代码  ### 2.5、进入Jenkins项目任务详情  ### 2.6、配置构建,增加构建步骤,选择调用顶层Maven目标  ## 3、配置Jenkins项目工程的Maven打包信息 ### 3.1、配置Maven打包信息和命令  ### 3.2、在Jenkins项目任务详情,执行立即构建  ### 3.3、查看项目构建日志信息 > **Maven拉取详情项目工程依赖包的速度会比较慢,如果拉取超时,配置Maven国内的镜像源。** **具体配置参照Maven安装&配置** [3] Build阶段-Maven安装&配置  ### 3.4、进入Jenkins Docker容器中查看打包好的文件  ``` # 进入Jenkins Docker容器 $ docker exec -it jenkins-server /bin/bash # 在容器中,进入Jenkins项目打包的目录 $cd /var/jenkins_home/workspace/jenkins-publish-demo # 进入target目录,查看打包好的Jar文件 $cd target/ ``` ## 4、把打包好的Jar复制到目标部署服务器 ### 4.1、配置构建之后的操作  ### 4.2、配置SSH服务器信息   ### 4.3、在Jenkins项目任务详情,执行立即构建  ### 4.4、查看项目构建日志信息   ### 4.5、在目标服务器查看复制过来的jar文件  ``` # 进入部署的目录 $cd /usr/local/deploy/ # 进入复制过来的目录 $cd target/ # 查看目录下的所有文件 $ ll ``` ## 5、编写项目工程的Docker文件 ### 5.1、在Springboot项目工程pom.xml文件中,修改打包后的文件名  ### 5.2、在工程docker目录下,编写Dockerfile文件  ``` FROM openjdk:8u322-jre MAINTAINER FlyGo ENV PARAMS="" ENV TZ=PRC RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo$TZ > /etc/timezone ADD jenkins-publish-demo.jar /app.jar ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /app.jar $PARAMS"] ``` ### 5.3、在工程docker目录下,编写docker-compose.yml文件  ``` version:"3.1" services: # 指定服务名称 jenkins-publish-demo: build: # 上下文路径 . 为当前目录 context:. # 指定构建镜像的 Dockerfile 文件名 dockerfile:Dockerfile # 指定服务使用的镜像 image:jenkins-publish-demo:v1.0 # 指定容器名称 container_name:jenkins-publish-demo # 指定服务运行的端口 ports: # 应用启动的端口号 -8081:8080 # 指定容器的环境变量 environment: JAVA_OPTS:"-Xms512m -Xmx512m -Xmn128m -XX:PermSize=128m -XX:MaxPermSize=256m" ``` ### 5.4、把编写好的docker相关文件提交到git仓库   ### 5.5、在Gitlab管理查看提交的结果  ## 6、通过Jenkins打包运行Springboot项目 ### 6.1、在Jenkins项目工程配置构建后的执行脚本 > **脚本核心步骤:** > > * **进入部署服务器的docker目录,这里使用绝对路径** > * **把目录下的target jar包复制到docker目录下** > * **停止已运行的容器** > * **使用docker-compose重新打包构建运行** > * **删除清理docker构建之后,none标识的无效docker镜像文件** ``` cd /usr/local/deploy/docker mv ../target/*.jar ./ docker-compose down docker-compose up -d --build docker image prune -f ```  ### 6.2、在Jenkins项目任务详情,执行立即构建  ### 6.3、查看项目构建日志信息 > **docker第一次拉取镜像,特别是默认的镜像源,会出现拉取超时,Jenkins打包不成功。** > > **如果出现拉取Docker镜像超时,可以设置一个国内的阿里云镜像源。**    ### 6.4、浏览器测试访问部署的Springboot服务 > **部署的服务地址:****http://192.168.95.131:8081/sayHello** ``` # 查看docker启动的Springboot项目服务进程 $ docker ps | grep jenkins-publish-demo ```   ## 7、修改Springboot服务源码,重新打包部署服务 ### 7.1、在Springboot项目工程,修改服务源码  ### 7.2、提交修改后的代码到Git仓库  ### 7.3、登录Jenkins管理后台,重新对项目打包部署  ### 7.4、查看Jenkins项目打包日志   ### 7.5、浏览器重新访问Springboot服务 > **部署的服务地址:****http://192.168.95.131:8081/sayHello**  # 五、持续交付和部署 ## 1、下载安装插件 Git Parameter  ## 2、进入Jenkins项目配置  ## 3、配置参数化构建过程  ## 4、填写Git参数信息  ## 5、在Maven打包之前,添加分支切换脚本命令   ## 6、编写执行shell脚本,切换到定义git的tag分支 ``` git checkout $tag ```  ## 7、在Gitlab管理后台创建v1.0 Tag分支     ## 8、在Gitlab管理后台创建v2.0 Tag分支 ### 8.1、在master分支上修改Springboot源码和docker-compose.yml镜像版本为2.0  ### 8.2、提交修改的代码到master分支  ### 8.3、操作步骤7,在Gitlab管理后台创建 v2.0 Tag分支   ## 9、在Jenkins管理后台,项目详情  ## 10、Jenkins构建Tag v1.0版 ### 10.1、选择Build with Parameters,选择v1.0开始构建  ### 10.2、查看本次打包构建记录日志  ### 10.3、浏览器重新访问Springboot服务 > **部署的服务地址:****http://192.168.95.131:8081/sayHello**  ## 11、Jenkins构建Tag v2.0版 ### 11.1、选择Build with Parameters,选择v2.0开始构建  ### 11.2、查看本次打包构建记录日志  ### 11.3、浏览器重新访问Springboot服务 > **部署的服务地址:****http://192.168.95.131:8081/sayHello**  # 最后修改:2025 年 06 月 18 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 2 如果觉得我的文章对你有用,请随意赞赏