Docker 部署 Jenkins 构建 SpringBoot 工程发布镜像

鱼满舱

关注

阅读 13

2023-09-05

说明

全部都基于 Docker 服务搭建使用,首先用 Docker 安装 Jenkins 环境,Docker 安装 GitLab 版本管理系统,执行 Jenkins 拉取指定版本 tag 进行编译构建,在用 SonarQube 进行代码质量检测,在打包制作镜像,发布到 Harbor 镜像仓库,最后启动 SpringBoot 工程并进行访问。


系统平台

CentOS Linux 7

Docker Version: 24.0.5

Docker Compose version v2.20.2

Docker 部署 Jenkins 构建 SpringBoot 工程发布镜像_Jenkins

上面的环境搭建准备,这里就不在过多描述。


相关技术栈

序号

名称

版本

备注

1

OS

CentOS Linux7

操作系统

2

docker

24.0.5

容器

3

Docker Compose

2.20.2

多容器应用的部署和管理工具

4

Jenkins

2.414.1

CICD

5

GitLab

14.6.1

版本管理

6

Maven

3.5.3

构建工具

7

JDK

1.8.0_301

Java开发工具包

8

SonarQube

8.9.8

代码质量扫描

9

Harbor

2.8.3

镜像仓库


GitLab 创建个 HelloSpringBoot 仓库,导入 base 代码。

Docker 部署 Jenkins 构建 SpringBoot 工程发布镜像_代码质量_02


Jenkins 创建一个自由风格的 Job 工程。

Docker 部署 Jenkins 构建 SpringBoot 工程发布镜像_代码质量_03

选择 tag 版本,进行构建编译,发现部署有问题,可以及时回滚构建版本发布。

Docker 部署 Jenkins 构建 SpringBoot 工程发布镜像_代码质量_04


构建编译过程

Docker 部署 Jenkins 构建 SpringBoot 工程发布镜像_Docker_05

编译构建过程中的关键执行步骤如下

Docker 部署 Jenkins 构建 SpringBoot 工程发布镜像_代码质量_06

#!/bin/bash -x
pwd
chmod -R 777 /usr/local/docker
rm -rf /usr/local/docker/testing/*
sleep 1
cp -rf target/*.jar /usr/local/docker/testing/
cp -rf Docker/* /usr/local/docker/testing/
cd /usr/local/docker/testing
docker-compose up -d --build
docker image prune -f
docker tag mytest:$tag 192.*.*.*:80/repository/mytest:$tag
docker login -u admin -p scm#Admin1 192.*.*.*:80
if [ $? -ne 0 ]; then
    echo "=====failed====="
    exit 1
else    
    docker push 192.*.*.*:80/repository/mytest:$tag
    echo "===== Push images Succeed ====="
fi

构建完成,打包制作镜像,发布到 Harbor 镜像仓库。

Docker 部署 Jenkins 构建 SpringBoot 工程发布镜像_代码质量_07


构建编译过程,执行了 SonarQube 代码扫描分析,把代码扫描质量结果发布到系统上。 

Docker 部署 Jenkins 构建 SpringBoot 工程发布镜像_Docker_08


发布制作的 docker 镜像,发布到 Harbor 仓库。

Docker 部署 Jenkins 构建 SpringBoot 工程发布镜像_Jenkins_09


Docker 部署 Jenkins 构建 SpringBoot 工程发布镜像_Jenkins_10

浏览器访问部署的 springboot 服务,可以看到已正常访问了。


到此,整个 Docker 部署 Jenkins 构建 SpringBoot 工程,进行编译,进行代码的质量扫描,然后发布镜像到镜像仓库中,最后部署 SpringBoot 工程,全部任务都完成了。

今天的分享也就结束了。




精彩评论(0)

0 0 举报