杂记 | 记录一次使用docker安装gitlab-runner的过程(馋哭了)

文章目录

  • 01 前情提要
  • 02 编写docker-compose.yml
  • 03 启动与注册
  • 04 流水线部署


01 前情提要

前不久使用docker部署好了自己的gitlab服务,简直香惨了。
上集传送门:记录一次使用Docker安装gitlab-ce的过程(含配置交换内存)

现在,gitlab-runner终于可以来了!

一句话概括有多香:成功安装gitlab-runner后,就可以流水线部署项目了,毕竟“懒惰”是程序员的三大美德之一。

02 编写docker-compose.yml

首先,在服务器上新建一个名为gitlab-runner的目录。
然后在里面新建docker-compose.yml文件。
内容参考:

version: '3.8'
services:
  gitlab-runner:
    image: gitlab/gitlab-runner:latest
    container_name: gitlab-runner
    restart: always
    volumes:
      - ./config:/etc/gitlab-runner
      - /var/run/docker.sock:/var/run/docker.sock  # 这一行是固定写法 不要随便改

03 启动与注册

在docker-compose.yml目录下,分别运行命令:

# 先拉取镜像
docker-compose pull

# 拉取完成后,启动镜像
docker-compose up -d

# 查看启动日志
docker-compose logs -f

查看日志的时候,会发现许多报错信息:
杂记 | 记录一次使用docker安装gitlab-runner的过程(馋哭了)_第1张图片
不慌,这是正常现象。
这是因为runner没有注册,可以理解成runner容器需要和gitlab-ce容器绑定才能使用。

注册时需要填写一些字段,先到gitlab里准备好。

登录gitlab进入设置界面(管理员登录更佳)

杂记 | 记录一次使用docker安装gitlab-runner的过程(馋哭了)_第2张图片

找到CI/CD下的Runner条目,在“新建Runner”旁有3个小点,点击。

杂记 | 记录一次使用docker安装gitlab-runner的过程(馋哭了)_第3张图片

拿到url和令牌:

杂记 | 记录一次使用docker安装gitlab-runner的过程(馋哭了)_第4张图片
然后开始注册:

# 进入容器内部并执行注册操作
docker exec -it gitlab-runner gitlab-runner register  # 第一个gitlab-runner是容器名称 根据实际情况填写

中间需要填写一些信息

# 01 首先,会要求填写url
> Enter the GitLab instance URL (for example, https://gitlab.com/):
# 填刚才拿到的url

# 02 然后,要求填写令牌
> Enter the registration token:
# 填刚才拿到的token

# 03 填写描述
> Enter a description for the runner:
# 随便写,之后可以到设置页面更改

# 04 填写标签 ,分隔
> Enter tags for the runner (comma-separated):
default_runner  # 这个要填一个标签名,之后可以修改

# 05 填写可选说明
> Enter optional maintenance note for the runner:
# 随便写或不写 之后可改

# 06 选择执行器 如果不会选 就选docker
> Enter an executor: custom, docker, shell, ssh, virtualbox, docker-autoscaler, docker+machine, instance, docker-windows, parallels, kubernetes:
docker  # 输入docker并回车

# 07 选择默认镜像(docker选项会有这一步,默认镜像仅当.gitlab-ci.yml没有指定时才生效)
> Enter the default Docker image (for example, ruby:2.7):
alpine:latest  # 我写了个alpine 供参考

# 提示创建成功!
> Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

04 流水线部署

作为测试,我新建了一个项目,写了一个index.html页面。
编写.gitlab-ci.yml文件

pages:
 stage: deploy
 script:
   - mkdir .public
   - cp -r ./* .public
   - rm -rf public
   - mv .public public
 artifacts:
   paths:
     - public
 rules:
   - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH

新建一个流水线:

杂记 | 记录一次使用docker安装gitlab-runner的过程(馋哭了)_第5张图片

运行时遇到问题:

在这里插入图片描述

因为我的runner设置了标签,要求作业也要设置对应的标签才行,一种方案是在.gitlab-ci.yml中新增标签。

我这里偷个懒,勾选支持无标签运行。

杂记 | 记录一次使用docker安装gitlab-runner的过程(馋哭了)_第6张图片

重新部署:

杂记 | 记录一次使用docker安装gitlab-runner的过程(馋哭了)_第7张图片

你可能感兴趣的:(杂记,docker,ci/cd,gitlab)