六、CI、CD入门操作
基于Jenkins拉取GitLab的SpringBoot代码进行构建发布到测试环境实现持续集成
基于Jenkins拉取GitLab指定发行版本的SpringBoot代码进行构建发布到生产环境实现CD实现持续部署
6.1 CI操作(3)——持续集成
为了让程序代码可以自动推送到测试环境基于Docker服务运行,需要添加Docker配置和脚本文件让程序可以在集成到主干的同时运行起来。
1、gitlab上添加Dockerfile文件和docker-compose.yml文件
● 添加Dockerfile文件
Dockerfile文件内容: FROM daocloud.io/library/java:8u40-jdk 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:8080 #注意端口号不要与gitlab的默认端口冲突
由于我这里没有java编译软件,所以这里我直接在gitlab上创建Dockerfile和docker-compose.yml文件
2、追加配置Jenkins构建后操作脚本命令
保存后点击立即构建,有可能会失败,解决方法是把配置好的dockerfile命令放在目标服务器上执行一遍,再次点击立即构建。
命令内容: cd /usr/local/test mv ./target/*jar ./ docker-compose down docker-compose up -d --build docker image prune -f # 删除虚悬镜像
3、Jenkins立即构建推送到目标服务器
查看目标服务器镜像,多了一个mytest,正常docker ps应该可以看到一个容器实例,但这里由于我的代码有问题无法在网页上打开,所以只能看到镜像
- 正常来说,构建成功后,容器实例也跑起来之后,就会由测试人员测试部署到目标服务器的程序,再测试就会在网页上看到相关的内容。
| 查看目标服务器并测试接口: |
|:–|
|
|
|
6.2 持续交付、部署
程序代码在经过多次集成操作到达最终可以交付,持续交付整体流程和持续集成类似,不过需要选取指定的发行版本。
1、下载Git Parameter插件
2、设置项目参数化构建
- 添加tag参数
3、切换指定标签并构建项目
- 任务构建时,采用Shell方式构建,拉取指定tag版本代码
4、给git项目添加tag版本
- 添加tag版本
修改docker-compose.yml文件中的版本,以及java文件中的内容后,再次创建一个tag标签v2.0.0,
5、基于Parameter构建任务,选择版本将任务发布到目标服务器
构建任务:
可以看到日志中 先切换版本再执行打包的操作:
docker ps 可以看到构建的镜像版本: