【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

相关文章
|
11天前
|
运维 安全 Devops
DevOps实践:持续集成与持续部署(CI/CD)的自动化之路
【10月更文挑战第22天】在软件交付的快速迭代中,DevOps文化和实践成为企业加速产品上市、保证质量和提升客户满意度的关键。本文将通过一个实际案例,深入探讨如何利用持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)实现软件开发流程的高效自动化,包括工具选择、流程设计以及问题解决策略。我们将一起探索代码从编写到部署的全自动化旅程,揭示其对企业运维效率和产品质量所带来的深远影响。
|
1月前
|
Devops jenkins 测试技术
DevOps实践:持续集成与持续部署(CI/CD)的实现之路
【9月更文挑战第33天】在软件开发的海洋中,DevOps是一艘能够加速航行、提升航程质量的巨轮。本文将作为你的航海图,指引你理解并实现DevOps文化中的核心环节——持续集成(CI)与持续部署(CD)。我们将从基础概念出发,逐步深入到实际操作,带你领略代码到部署的全过程。准备好扬帆起航,让我们共同探索如何通过自动化工具和流程优化,让软件交付变得既高效又可靠。
|
2月前
|
监控 Devops 测试技术
DevOps实践: 持续集成和持续部署(CI/CD)的入门指南
【9月更文挑战第10天】在快速迭代的软件开发世界中,DevOps已经成为加速产品交付、提升软件质量和团队协作的关键策略。本文将深入浅出地介绍DevOps的核心组成部分——持续集成(Continuous Integration, CI)与持续部署(Continuous Deployment, CD)的基本概念、实施步骤以及它们如何革新传统的软件开发流程。你将学习到如何通过自动化工具简化开发流程,并理解为什么CI/CD是现代软件开发不可或缺的一环。
|
2月前
|
Devops jenkins Shell
DevOps实践:持续集成与持续部署(CI/CD)的探索之旅
【9月更文挑战第3天】在软件开发的世界里,DevOps已经成为了提升效率、加速产品迭代的关键。本文将深入浅出地探讨DevOps文化中的核心实践——持续集成(Continuous Integration,CI)和持续部署(Continuous Deployment,CD),并展示如何通过实际操作来优化开发流程。我们将一起踏上这段旅程,解锁自动化的魅力,让代码更流畅地转化为价值。
|
3月前
|
Java Spring 传感器
AI 浪潮席卷,Spring 框架配置文件管理与环境感知,为软件稳定护航,你还在等什么?
【8月更文挑战第31天】在软件开发中,配置文件管理至关重要。Spring框架提供强大支持,便于应对不同环境需求,如电商项目的开发、测试与生产环境。它支持多种格式的配置文件(如properties和YAML),并能根据环境加载不同配置,如数据库连接信息。通过`@Profile`注解可指定特定环境下的配置生效,同时支持通过命令行参数或环境变量覆盖配置值,确保应用稳定性和可靠性。
59 0
|
3月前
|
敏捷开发 缓存 前端开发
阿里云云效产品使用合集之前端打包时npm安装卡住一般是什么导致的
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
敏捷开发 弹性计算 持续交付
阿里云云效产品使用合集之同一个主机部署是否支持下载多个制品
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
敏捷开发 监控 Java
阿里云云效产品使用合集之Codeup WebIDE环境下,如何使用通义灵码
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之如何进行大文件的迁移
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
敏捷开发 安全 测试技术
阿里云云效产品使用合集之如何在甘特图视图中看到负责人信息
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。