(CI/CD)介绍和详细的构建过程

(CI/CD)介绍及实用说明

(CI/CD)介绍

CI/CD => 工程自动化

CI 持续集成(Continuous Integration)

CD 持续部署(Continuous Deployment)

CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD 的核心概念是持续集成、持续交付和持续部署。作为一个面向开发和运营团队的解决方案,CI/CD 主要针对在集成新代码时所引发的问题。具体而言,CI/CD 可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试阶段,到交付和部署)。这些关联的事务通常被统称为“CI/CD 管道”,由开发和运维团队以敏捷方式协同支持。

Dockerfile简介

  • Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,’#’ 为 Dockerfile 中的注释。
  1. 基础镜像信息: FROM 指定基础镜像
  2. 维护者信息: MAINTAINER Jasper Xu sorex@163.com
  3. 镜像操作指令: RUN/ADD/COPY等
  4. 容器启动时执行指令: CMD
  • 针对实际应用中所运用到命令:
  1. COPY: 复制拷贝文件
  2. ADD: 复制新文件、目录或远程文件 URL ,并将它们添加到 中
  3. ENV: 设置环境变量 (eg: ENV = …)
  4. CMD: 运行程序,在 docker run 时运行,但是和 run 命令不同,RUN 是在 docker build 时运行
  • 支持3中种格式:
  1. CMD [“executable”,“param1”,“param2”] 使用 exec 执行;
  2. 推荐方式;CMD command param1 param2 在 /bin/bash 中执行,提供给需要交互的应用;
  3. CMD [“param1”,“param2”] 提供给 ENTRYPOINT 的默认参数
  • 注意:指定启动容器时执行的命令,每个 Dockerfile 只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行

CI/CD配置步骤说明

前期准备工作

1、新建一个分支(develop/test)

2、将.ci 和.gitlab-ci.yml文件复制到工程的根目录下

3、将目录.ci/charts/… 下的文件名字改成你的工程名字

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sXZ0L20X-1651921479625)(./img/01.png)]

  • 工程新建完成后push代码到develop ,进行编译和部署,只有第一次通过编译和部署以后才可以配置CI/CD
  • 如果第一次编译不通过的情况,可以根据提示进行代码的修改

在这里插入图片描述

配置部署

1、关联应用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vx0lfiKj-1651921479627)(./img/03.png)]

2、关联应用后的显示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xz67LZMV-1651921479628)(./img/04.png)]

3、创建部署配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QCFvonYJ-1651921479629)(./img/05.png)]

  • 创建部署配置需要注意的地方
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0xft0lwK-1651921479630)(./img/06.png)]
4、创建流水线

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b1JyDNDM-1651921479631)(./img/07.png)]

  • 注意:
    创建流水线后更新分支代码重新构建,不然看不到实例的运行详情,无法进行后续修改
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kilri0VY-1651921479631)(./img/08.png)]
5、点击实例修改value

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xsfv3D7e-1651921479632)(./img/09.png)]

  • 修改实例value时要注意的一些地方
  1. 开放devops的网络部署功能
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B54tVMei-1651921479632)(./img/10.png)]
  2. 配置前端的 baseUrl ,静态资源地址等url,需要在dockfile文件中写对应的读取文件
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kqj8JPwF-1651921479633)(./img/11.png)]
  3. 配置对外开发服务的域名,转发打开
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T2ivPx4F-1651921479633)(./img/12.png)]
  4. 配置部署完成重新编译项目,编译成功后访问服务
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NaJ4BEgn-1651921479633)(./img/13.png)]

Dockerfile文件配置说明

Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,’#’ 为 Dockerfile 中的注释。

  1. 基础镜像信息: FROM 指定基础镜像
  2. 维护者信息: MAINTAINER Jasper Xu sorex@163.com
  3. 镜像操作指令: RUN/ADD/COPY等
  4. 容器启动时执行指令: CMD

针对实际应用中所运用到命令:

  1. COPY: 复制拷贝文件
  2. ADD: 复制新文件、目录或远程文件 URL ,并将它们添加到 中
  3. ENV: 设置环境变量 (eg: ENV = …)
  4. CMD: 运行程序,在 docker run 时运行,但是和 run 命令不同,RUN 是在 docker build 时运行

支持3中种格式:

CMD [“executable”,“param1”,“param2”] 使用 exec 执行;

推荐方式;CMD command param1 param2 在 /bin/bash 中执行,提供给需要交互的应用;

CMD [“param1”,“param2”] 提供给 ENTRYPOINT 的默认参数

注意:指定启动容器时执行的命令,每个 Dockerfile 只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行

简单总结

  1. 建分支
  2. 复制文件到工程
  3. 修改charts/…为工程名
  4. 关联应用
  5. 创建部署配置
  6. 创建流水线
  • 如有疑问欢迎留言一起讨论,一起学习~
  • 11
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
当使用CI/CD时,以下是一般的步骤和工具,以详细说明如何实施: 1. 版本控制:使用版本控制系统(例如Git)来管理和跟踪代码的变化。 2. 代码托管:将代码托管在云端代码托管平台(例如GitHub、GitLab或Bitbucket)上,以便团队成员可以协同开发和访问代码。 3. 构建配置:为项目设置构建配置文件(例如使用Jenkinsfile、.gitlab-ci.yml或Travis CI配置文件),定义构建步骤和依赖关系。 4. 自动化构建:使用构建工具(例如Maven、Gradle或Webpack)自动化构建过程。这包括编译代码、运行单元测试、生成构建产物等。 5. 静态代码分析:在构建过程中,可以使用静态代码分析工具(例如SonarQube)检查代码质量,并发现潜在的问题或不符合编码标准的代码。 6. 自动化测试:集成自动化测试框架(例如JUnit、Selenium或Cypress)来编写和运行各种类型的测试,包括单元测试、集成测试和端到端测试。 7. 持续集成:通过版本控制系统的Web钩子(Webhook)或CI服务器(例如Jenkins、GitLab CI/CD或Travis CI)来触发自动化构建和测试流程。每当有新的代码提交时,自动进行构建和测试。 8. 构建反馈和报告:在每次构建完成后,生成构建报告和测试报告,以便开发人员和团队成员可以查看构建状态、测试结果和代码覆盖率等信息。 9. 部署配置:定义应用程序的部署配置文件(例如使用Dockerfile、Kubernetes配置或Ansible脚本),以及运行环境的配置信息。 10. 自动化部署:使用部署工具(例如Jenkins、GitLab CI/CD、Terraform或Kubernetes)自动化部署应用程序和运行环境。这可以包括将构建产物推送到生产环境、配置服务器和启动应用程序等。 11. 持续交付:通过持续交付流程,将经过验证的代码部署到生产环境,以实现快速且可靠的软件交付。 12. 监控和反馈:设置监控和日志记录系统,以便实时监视应用程序的性能、错误和日志。这有助于快速发现和解决问题,并提供反馈给开发人员。 以上是CI/CD的一般步骤和工具。需要根据具体项目和团队的需求进行定制和调整。CI/CD的目标是通过自动化流程,提高开发效率、减少错误,并实现快速、高质量的软件交付。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值