【devops】六、CI、CD入门操作

简介: 【devops】六、CI、CD入门操作

六、CI、CD入门操作


基于Jenkins拉取GitLab的SpringBoot代码进行构建发布到测试环境实现持续集成

基于Jenkins拉取GitLab指定发行版本的SpringBoot代码进行构建发布到生产环境实现CD实现持续部署


6.1 CI操作(3)——持续集成

为了让程序代码可以自动推送到测试环境基于Docker服务运行,需要添加Docker配置和脚本文件让程序可以在集成到主干的同时运行起来。


1、gitlab上添加Dockerfile文件和docker-compose.yml文件

● 添加Dockerfile文件

145cd371882941968ba4b8d2e95dc632.png

Dockerfile文件内容:
FROM daocloud.io/library/java:8u40-jdk
COPY mytest.jar /usr/local/
WORKDIR /usr/local
CMD java -jar mytest.jar
  • 添加docker-compose.yml文件

d77ae2c9060b46b184b7cd80aafa6880.png

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文件

77f305b5fab3478fa9856ba60e091189.png


2、追加配置Jenkins构建后操作脚本命令

保存后点击立即构建,有可能会失败,解决方法是把配置好的dockerfile命令放在目标服务器上执行一遍,再次点击立即构建。

8c20abbf5de044c0950129d6882a0dad.png

命令内容:
cd /usr/local/test
mv ./target/*jar ./
docker-compose down
docker-compose up -d --build
docker image prune -f   # 删除虚悬镜像
3、Jenkins立即构建推送到目标服务器

944e3a9b19ca4b089723d23d0bf22b0c.png

查看目标服务器镜像,多了一个mytest,正常docker ps应该可以看到一个容器实例,但这里由于我的代码有问题无法在网页上打开,所以只能看到镜像

4f747de0932c49058e6aa0f74e40c36f.png


  • 正常来说,构建成功后,容器实例也跑起来之后,就会由测试人员测试部署到目标服务器的程序,再测试就会在网页上看到相关的内容。

| 查看目标服务器并测试接口: |

|:–|

|

6f4f51d68560492db86e98cd13feb952.png

|

2e4d0e8cb5ee4860852432e604d73f48.png

|


6.2 持续交付、部署


程序代码在经过多次集成操作到达最终可以交付,持续交付整体流程和持续集成类似,不过需要选取指定的发行版本。


1、下载Git Parameter插件

91542888e7be4bb99bf8f3558d2635bf.png

2、设置项目参数化构建
  • 添加tag参数

8470241b72df4e5dabc02e595f79a253.png

a4c0120ac4c64b299003248fe7d15277.png


3、切换指定标签并构建项目
  • 任务构建时,采用Shell方式构建,拉取指定tag版本代码

d924e46c5f364b238f3dca3f4e69875d.png

e479cd40647e48a7b5e6bf70aaa479f7.png

4、给git项目添加tag版本
  • 添加tag版本

497f17a9e99d42c7adb80574d5eb00aa.png

3cee10704cec40fdaa77bfe25ed74159.png

修改docker-compose.yml文件中的版本,以及java文件中的内容后,再次创建一个tag标签v2.0.0,

a531735dcfaa44f4b717d2c82e30c2bb.png

5、基于Parameter构建任务,选择版本将任务发布到目标服务器

构建任务:

2f9bc993be974902961eaa4f53983fde.png

可以看到日志中 先切换版本再执行打包的操作:

f2bbb3e1a46942f7a4b012c3b11a97f8.png

docker ps 可以看到构建的镜像版本:

e84111a0dc2946e5b325bb5ff8c6c1f5.png

相关文章
|
3月前
|
运维 Cloud Native Devops
云原生 DevOps CI/CD 概述
【1月更文挑战第7天】云原生 DevOps CI/CD 概述
|
1月前
|
Kubernetes Cloud Native Devops
云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (2/2)
云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (2/2)
52 1
|
1月前
|
Kubernetes Devops Java
云原生技术落地实现之一KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (1/2)
云原生技术落地实现之一KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (1/2)
44 0
云原生技术落地实现之一KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (1/2)
|
1月前
|
Devops 开发工具 数据安全/隐私保护
Docker Swarm总结+CI/CD Devops、gitlab、sonarqube以及harbor的安装集成配置(3/5)
Docker Swarm总结+CI/CD Devops、gitlab、sonarqube以及harbor的安装集成配置(3/5)
60 0
|
11月前
|
Devops 开发工具 git
devops之CI极简教学视频---git(下)
devops之CI极简教学视频---git(下)
|
jenkins Devops Java
jenkins快速入门,自动构建一个hello world项目(devops,ci/cd)
jenkins快速入门,自动构建一个hello world项目(devops,ci/cd)
jenkins快速入门,自动构建一个hello world项目(devops,ci/cd)
|
存储 Kubernetes Java
DevOps基于k8s发布系统CI/CD的实现
在微服务、DevOps和云平台流行的当下,使用一个高效的持续集成工具也是一个非常重要的事情。虽然市面上目前已经存在了比较成熟的自动化构建工具,比如jekines,还有一些商业公司推出的自动化构建工具,但他们都不能够很好的和云环境相结合。那么[究竟该如何实现一个简单、快速的基于云环境的自动化构建系统呢](https://github.com/tiandizhiguai/dhorse)?
DevOps基于k8s发布系统CI/CD的实现
|
1月前
|
运维 安全 Devops
构建高效稳定的云基础设施:DevOps与容器化技术融合实践
在数字化转型的浪潮中,企业对于IT基础设施的要求越来越高,不仅需要快速响应市场变化,还要确保系统的稳定与安全。本文深入探讨了如何通过融合DevOps文化和容器化技术来构建一个高效、稳定且易于管理的云基础设施。通过实际案例分析,阐述了持续集成/持续部署(CI/CD)流程的优化、自动化测试、监控以及日志管理等关键环节的实施策略,旨在为运维专业人员提供一套切实可行的解决方案。
31 3
|
1月前
|
运维 Kubernetes Devops
构建高效可靠的云基础设施:DevOps与容器化技术融合实践
【2月更文挑战第30天】 在当今快速迭代和竞争激烈的软件开发领域,传统的IT运维模式已难以满足业务发展的需要。本文将探讨如何通过整合DevOps文化和容器化技术,构建一个既高效又可靠的云基础设施。文章首先回顾了DevOps的核心理念及其对运维工作流的影响,接着深入讨论了容器化技术的优势和挑战,并提出了一套结合两者的实施方案。最后,通过案例分析展示了该方案在实际环境中的应用效果和潜在益处。
|
13天前
|
运维 Kubernetes Devops
构建高效自动化运维体系:DevOps与容器技术融合实践
【4月更文挑战第15天】 在当今快速发展的信息技术时代,传统的IT运维模式已难以满足业务敏捷性的需求。本文旨在探讨如何通过整合DevOps理念和容器技术来构建一个高效的自动化运维体系。文章将详细阐述DevOps的核心原则、容器技术的基础知识,以及两者结合的优势。此外,文中还将分享一系列实践经验,包括持续集成/持续部署(CI/CD)流程的搭建、微服务架构的应用,以及监控和日志管理策略的优化,以期帮助企业实现快速、可靠且安全的软件交付过程。

热门文章

最新文章