DevOps 之 CI/CD入门操作 (二)
CI/CD简介
基于Jenkins拉取GitLab的SpringBoot代码进行构建发布到测试环境实现持续集成
基于Jenkins拉取GitLab指定发行版本的SpringBoot代码进行构建发布到生产环境实现CD实现持续部署
一、CI流程
1.1 新建项目
- 新建一个简单的springboot项目
- 写一个简单的Controller
- 运行测试
1.2 上传GitLab
- 创建仓库
- 添加Access tokens
- 用Access tokens登录并上传代码
1.3 配置Jenkins
为了让程序代码可以自动推送到测试环境基于Docker服务运行,需要添加Docker配置和脚本文件让程序可以在集成到主干的同时运行起来。
- 新建item
- 配置gitlab仓库(用于jenkins拉取代码)
上述第4步,配置密码
- 构建项目
- 构建成功
- 进入jenkins容器查看
会发现多了一个workspace文件夹,里面就是构建的项目
#1
docker exec -it jenkins bash
#2
cd ~
#3
cd workspace
#4
cd mytest
#4
ls
- 至此,Jenkins已成功拉取Gitlab的代码
需要Jenkins将拉取的代码通过maven构建成jar包
添加 Jenkins构建时配置(maven)
- 再次构建项目(构建过程需要一定时间,要初始化maven仓库)
- 查看构建控制台
- 进入Jenkins容器查看,会发现多了target文件夹和jar包
docker exec -it jenkins bash
- Jenkins 构建后配置
jar包构建成功后,将jar包推送至目标服务器
需要用到之前安装的 Publish Over SSH 插件
(插件的配置)
指定了jar包上传的服务器(这里用的当前的虚拟机)以及目录
配置Publish Over SSH 和上传源
- 再次构建项目
- 成功后查看目标服务器是否有相应jar包
1.4 借助docker容器运行jar
jar包上传后要实现将jar包运行在服务器,这里需要借助docker来完成
-
更改打包名finalName
-
创建Dockerfile,帮助构建镜像
FROM openjdk:8u131 //基础镜像
COPY mytest.jar /usr/local/
WORKDIR /usr/local
CMD java -jar mytest.jar
- 创建docker-compose.yml文件
version: '3.1'
services:
mytest:
build:
context: ./
dockerfile: Dockerfile
image: mytest:v1.0.0
container_name: mytest
ports:
- 8081:8081 #映射端口
- 上传代码及文件
- 成功上传后,Jenkins重新构建
- 构建完成后,进入Jenkins容器可以看到新建的docker以及文件
- Publish Over SSH配置增加上传源,并且加上命令
cd /usr/local/test/docker
mv ../target/*.jar ./
docker-compose down
docker-compose up -d --build
docker image prune -f #删除名字为none的镜像
- 构建项目失败
- 将命令拷贝去linux执行
- 再次构建,成功
- 查看镜像,测试
1.5 测试CI流程
- 修改代码,提交
- 重新构建,测试
二、CD流程
-
配置git参数 ,以及构建前配置
-
GitLab新建tag
-
修改并上传代码
-
创建新的tag
-
Jenkins可以根据tag构建项目
-
测试,选择不同的tag构建