CI/CD系列文章六 基于Docker实现一个最基本的Gitlab持续集成

385 阅读2分钟

本文基于Docker实现了Gitlab之CI/CD持续集成流程,不牵涉理论,作为流程的记录,相关技术的深入讲解将在下一篇详细介绍。

一、Docker安装gitlab runner

1、拉取Runner镜像并启动

docker run -d --name gitlab-runner --restart always -v /srv/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest

当前最新版本是14.6.0

2、进入Runner容器内

docker exec -it gitlab-runner bash

3、注册runner

gitlab-runner register
  • 输入Gitlab实例的地址(Gitlab runner设置时指定的URL)
> Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )

gitlab-runner.png

  • 输入token(Gitlab Runner 注册的令牌)
> Please enter the gitlab-ci token for this runner

gitlab-runner.png

  • 输入Runner的描述,比如my-runner

> Please enter the gitlab-ci description for this runner
  • 输入与Runner关联的标签
> Please enter the gitlab-ci tags for this runner (comma separated):

标签是为了让后期在CI脚本中指定选择某个或者多个Runner,这里我们设置他的标签为test,你们可以设置其他的

  • 输入Runner的执行器
> Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
docker

由于我们都是基于Docker,所以这里选择执行器为Docker

  • 设置执行器的版本
> Please enter the Docker image (eg. ruby:2.1):

如alpine:latest

4、查看Gitlab Runner

gitlab-runner-common.png

  • 项目中查看 gitlab-runner-project.png

5、注意事项

  • 设置运行没有标签的作业 gitlab-no-tag.png

 二、.gitlab-ci.yml文件配置

.gitlab-ci.yml文件中指定了CI的触发条件、工作内容、工作流程,编写和理解此文件是CI实战中最重要的一步,该文件指定的任务内容总体构成了1个pipeline、1个pipeline包含不同的stage执行阶段、每个stage包含不同的具体job脚本任务。

以下是一个完整的例子:

# 定义 stages
stages:
  - build
  - test
# 定义 job
job1:
  tags:
    - my-common-tag
  stage: test
  script:
    - echo "I am job1"
    - echo "I am in test stage"
# 定义 job
job2:
  tags:
    - my-common-tag
  stage: build
  script:
    - echo "I am job2"
    - echo "I am in build stage"

三、实际执行效果

ci结果.png

job1.png

job2.png

参考文档

Docker安装gitlab runner

gitlab-ci-yml

gitlab-部署

gitlab-runner

gitlab-pipelines

基于GitLab+docker的前端自动化构建部署(CI/CD)流程

使用gitlab-ci和docker自动化部署vue项目

基于 GitLab CI 的前端工程 CI / CD 实践

Gitlab CI/CD 简单介绍

基于 Vue+ Webpack 配合 GitLab CI/CD 自动化部署的实践经验分享

Docker安装Gitlab-runner及使用

Gitlab-ci:从零开始的前端自动化部署