注册 gitlab runner
本文使用 docker 引擎。详细内容参考官网
下载镜像
docker pull gitlab/gitlab-runner:latest
先下载下载,在做其他事情,启动的时候会很快。
生成配置(注册容器)
操作都在 gitlab-runner
目录下执行。
docker run --rm -it -v /root/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:latest register
详细说明参考 官网
url: 你的 gitlab 服务器的 url
token: 用管理员账户可以在 /admin/runners 下看到,点击路径为 管理中心 > 概览 > runner
runner executor:我选的 docker
image: 我输入的 centos:7
完成之后可以 ctrl + c 结束,此时/root/gitlab-runner/config目录下会多一个 config.toml 文件。
样例配置参考
理论上直接复制这份文件改改也行。
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "第一个 runner"
url = "<填写 gitlab url>"
id = 1
token = "<填写从 gitlab 管理中心复制过来的 token>"
token_obtained_at = 2022-10-10T01:34:00Z
token_expires_at = 0001-01-01T00:00:00Z
executor = "docker"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]
[runners.docker]
tls_verify = false
image = "centos:7"
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
启动
我使用的 docker compose 启动
此文件在 gitlab-runner 目录下。
version: '3.3'
services:
gitlab-runner:
container_name: gitlab-runner
restart: always
volumes:
- ./config:/etc/gitlab-runner
- /var/run/docker.sock:/var/run/docker.sock
image: gitlab/gitlab-runner:latest
command: register
检查
如果完成,在 gitlab 的管理中心 runner 栏目下可以看一个 runner。
docker in docker
如果你需要在 docker 里执行 docker ,那么可能会遇到一些问题。
比如像这样的错误
error during connect: Get "http://docker:2375/v1.24/containers/json": dial tcp: lookup docker on 223.5.5.5:53: no such host
将 “/var/run/docker.sock:/var/run/docker.sock” 复制到 /root/gitlab-runner/config/config.toml 里的 ,使其长得看起来像这样:
volumes = ["/var/run/docker.sock:/var/run/docker.sock","/cache"]
然后重启你的 runner ,类似于这样的命令
gitlab-runner restart
如果你使用`shell 执行器`
需要将 gitlab-runner 用户添加到 docker 组
usermod -aG docker gitlab-runner
更详细的内容,那么请访问这里