【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

相关文章
|
2月前
|
运维 Cloud Native Devops
云原生 DevOps CI/CD 概述
【1月更文挑战第7天】云原生 DevOps CI/CD 概述
|
13天前
|
监控 Devops 测试技术
DevOps实践:持续集成与持续部署(CI/CD)在现代软件开发中的作用
【6月更文挑战第24天】本文深入探讨了持续集成(Continuous Integration,简称CI)和持续部署(Continuous Deployment,简称CD)在现代软件开发生命周期中的核心作用。通过阐述CI/CD的概念、优势以及实施策略,文章旨在为读者提供一套完整的理论框架和实践指南,以促进软件开发流程的高效性和产品质量的提升。
|
20天前
|
运维 监控 Devops
DevOps实践:持续集成与持续部署(CI/CD)的精髓
【6月更文挑战第17天】本文将深入探讨DevOps文化中的核心实践——持续集成(CI)和持续部署(CD)。我们将从理论出发,逐步过渡到实际操作,介绍如何搭建一个高效的CI/CD流程。文章将涵盖工具选择、流程设计、自动化测试以及监控和反馈机制的建立。通过具体案例分析,揭示成功实施CI/CD的关键因素,并探讨如何在组织内推广这一实践以促进开发和运维之间的协作。
|
2月前
|
Kubernetes Cloud Native Devops
【阿里云云原生专栏】DevOps与云原生的融合:阿里云CI/CD流水线最佳实践
【5月更文挑战第23天】阿里云融合DevOps与云原生技术,提供高效CI/CD解决方案,助力企业提升研发效能。通过云效平台,集成代码管理、构建服务、容器服务、持续部署及监控日志组件,实现自动化研发流程。案例中,应用从GitHub构建到Kubernetes部署,全程无缝衔接。借助阿里云,企业能快速构建适应云原生的DevOps体系,以应对复杂需求和提升市场竞争力。
90 1
|
2月前
|
Kubernetes Cloud Native Devops
云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (2/2)
云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (2/2)
92 1
|
2月前
|
Kubernetes Devops Java
云原生技术落地实现之一KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (1/2)
云原生技术落地实现之一KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (1/2)
77 0
云原生技术落地实现之一KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (1/2)
|
2月前
|
Devops 开发工具 数据安全/隐私保护
Docker Swarm总结+CI/CD Devops、gitlab、sonarqube以及harbor的安装集成配置(3/5)
Docker Swarm总结+CI/CD Devops、gitlab、sonarqube以及harbor的安装集成配置(3/5)
177 0
|
4天前
|
监控 Devops 测试技术
利用DevOps提升开发效率:技术实践与策略
【7月更文挑战第4天】DevOps通过自动化、CI/CD、协作与沟通等手段,显著提升了软件开发的效率和质量。随着云计算、容器化、自动化测试等技术的不断发展,DevOps的实践将更加深入和广泛。未来,更多的企业将采用DevOps文化,构建高效、灵活、可靠的软件开发和运维体系,以应对快速变化的市场需求。 总之,利用DevOps提升开发效率是软件开发领域的重要趋势。通过实施上述实践策略,企业可以加速产品迭代,提高市场竞争力,实现可持续发展。
|
25天前
|
运维 监控 Devops
DevOps文化下的自动化运维实践
本文将探讨在DevOps文化背景下,自动化运维的重要性及其实现方式。通过分析自动化运维的优势和挑战,文章提供了具体的实施策略和案例,旨在帮助读者理解如何在DevOps实践中融入自动化运维,以提高软件开发和部署的效率与质量。
|
8天前
|
运维 监控 Devops
DevOps实践:构建高效运维流程
【6月更文挑战第29天】在现代软件开发周期中,DevOps已成为推动开发和运维团队紧密合作的重要哲学。本文将探讨如何通过DevOps实践来构建一个更高效的运维流程,从而提升软件交付速度、提高产品质量,并确保系统的稳定性和安全性。我们将从持续集成、自动化测试、配置管理、容器化部署、监控与告警等关键方面入手,深入分析DevOps实施过程中的关键环节及其对运维工作的影响。
25 3

热门文章

最新文章