一、简要说明

基于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

图片

正文到此结束
  • 本文作者:xinyu.he
  • 文章标题:Jenkins+GitLab自动化流水线解放双手
  • 本文地址:https://www.hxy.bj.cn/archives/357/
  • 版权说明:若无注明,本文皆Xinyu.he blog原创,转载请保留文章出处。
最后修改:2025 年 06 月 18 日
如果觉得我的文章对你有用,请随意赞赏