基于 GitLab 的 CI 实践

本文介绍了基于 GitLab CI 的实践,包括其前端界面、实时构建日志、C/S 架构、YAML 配置、Stage 和 Job 的执行逻辑。同时,详细讲解了如何配置 Docker Runner,以及涉及到的系统设置,如挂载、SELinux 和 AppArmor 的处理,以确保 dockerd 正常运行。最后,阐述了构建过程,包括service、cache、build容器的创建和job脚本的执行。
摘要由CSDN通过智能技术生成

640


本文讲述 GitLab CI 的架构及其能力特性,分析它在 DevOps 实践中的作用。 通过分析 Docker In Docker 的技术细节,详细讲述 CI 实践以及在生产环境中的所做的优化,包括但不限于镜像仓库等,以达到数倍的性能提升。
本次分享内容以 GitLab Community Edition 11.0.4 edb037c 为例。
为何选择 GitLab CI?

640

认识 GitLab CI
什么是 GitLab CI?
GitLab CI 是 GitLab 为了提升其在软件开发工程中作用,完善 DevOps 理念所加入的 CI/CD 基础功能。可以便捷的融入软件开发环节中。通过 GitLab CI 可以定义完善的 CI/CD Pipeline。
优势
  • GitLab CI 是默认包含在 GitLab 中的,我们的代码使用 GitLab 进行托管,这样可以很容易的进行集成

  • GitLab CI 的前端界面比较美观,容易被人接受

  • 包含实时构建日志,容易追踪

  • 采用 C/S 的架构,可方面的进行横向扩展,性能上不会有影响

  • 使用 YAML 进行配置,任何人都可以很方便的使用


重点概念
Pipeline
Pipeline 相当于一个构建任务,里面可以包含多个流程,如依赖安装、编译、测试、部署等。
任何提交或者 Merge Request 的合并都可以触发 Pipeline
Stages
Stage 表示构建的阶段,即上面提到的流程。
  • 所有 Stages 按顺序执行,即当一个 Stage 完成后,下一个 Stage 才会开始

  • 任一 Stage 失败,后面的 Stages 将永不会执行,Pipeline 失败

  • 只有当所有 Stages 完成后,Pipeline 才会成功


Jobs
Job 是 Stage 中的任务。
  • 相同 Stage 中的 Jobs 会并行执行

  • 任一 Job 失败,那么 Stage 失败,Pipeline 失败

  • 相同 Stage 中的 Jobs 都执行成功时,该 Stage 成功


好的,基本的概念已经和大家介绍了, 大家可以发现,上面说的概念,没有提到任务的实际执行者,那任务在哪里执行呢?
GitLab Runner
Runner 是任务的实际执行者, 可以在 MacOS/Linux/Windows 等系统上运行。使用 Golang 进行开发。 同时也可部署在 Kubernetes 上。
注册
docker run --rm -t -i -v /path/to/config:/etc/gitlab-runner --name gitlab-runner gitlab/gitlab-runner register \
  --executor "docker" \
  --docker-image alpine:3 \
  --url "https://gitlab.com/" \
  --registration-token "PROJECT_REGISTRATION_TOKEN" \
  --description "docker-runner" \
  --tag-list "dev" \
  --run-untagged \
  --locked="true"

上面的示例为将 Runner 注册为一个容器, 当然大家也可以直接在物理机上执行。 在物理机上的注册方式与注册为容器大致相同。
sudo gitlab-runner register \
  --non-interactive \
  --url "https://gitlab.com/" \
  --registration-token "PROJECT_REGISTRATION_TOKEN" \
  --executor "docker" \
  --docker-image alpine:3 \
  --description "docker-runner" \
  --tag-list "docker,aws" \
  --run-untagged \
  --locked="false" \
<
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值