基于jenkins,maven,docker实践springboot项目的CI/CD 自动化构建

本文通过CI/CD思想,演示如何使用Jenkins、Docker和Maven实现SpringBoot项目的自动化构建流程。目标包括:代码推送后自动构建、展示文档和测试结果、代码质量检测、SonarQube分析以及服务容器化部署。详细步骤涵盖了环境准备、Jenkins和SonarQube的配置,以及构建过程和验证。
摘要由CSDN通过智能技术生成

背景

很多开发同学都忙于写代码,但是对项目发布的整个流程不是很清楚,本文基于CI/CD的思想,结合Jenkins,docker,maven搭建一个自动化的发布流程,并加入代码质量检测,希望通过这个流程,能给开发小伙伴一个大概的CI/CD概览,同时也反过来思考怎么去写好代码。

目标

本次demo的目标输出结果为

  1. 本地推送代码后自动触发jenkins构建流程
  2. Jenkins展示javadoc, jxr, projectinfo等site阶段常规文档
  3. Jenkins展示测试结果
  4. Jenkins展示测试覆盖率
  5. Jenkins展示 Checkstyle结果
  6. Sonar server展示结果
  7. 服务在docker 容器中自动启动

大家可以对着这些目标验证自己是否成功。

前期准备

知识准备

  1. 基本了解docker的基本操作,用于搭建环境,我会把所有代码都贴出来,但是为了方便排查问题,至少过一遍官网的quick start.
  2. 熟悉maven,包括pom标签,lifecycle, dependency机制等,这部分对于理解整个流程是最重要的
  3. jenkins界面操作,这个可以等搭建完成后自己先点点看
    如果没有上面的知识储备,理论上只要照着做,也能成功,但出了问题可能无法解决,可以在下方留言寻求帮助

硬件要求

实验环境为2台2核2G linux centos,SonarQube 和Jenkins对系统负载有点要求,所以将这俩分开来搭建。即现有2核2G server-a, server-b两服务器,下面以此代称。
注:如果选择都装在同一台服务器上,后面执行sonar分析的时候会遇到容器内网络访问问题,下面也会进行补充说明,但是对于docker不熟悉的同学还是建议分开来,避免学习成本。

软件安装

  1. docker(server-a, server-b 都需安装)
sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
sudo yum-config-manager \
 --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io

此部分为单纯安装docker,和官网上是一样的,有问题可以看下官网。

service docker start

启动守护线程
2.Jenkins(server-a安装,可以和下面的SonarQube搭建同时进行,节省时间)

docker run -p 9010:8080 -p 50000:50000 -u root -d \
 -v $(which docker):/usr/bin/docker \
 -v /opt/data/jenkins-data/home:/var/jenkins_home \
 -v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts

设置web访问端口9010,-v volume挂载命令,将容器内资源映射到host。第1个v和第3个v的目的是将host docker映射到容器内部,这样在jenkins内

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值