gitlab-runner 的创建
Important
创建 gitlab-runner 的容器
Caution
如果要创建新的 runner,要记得先把旧的配置文件夹删掉(/srv/gitlab-runner/config
),因为这里多加了映射,要小心残留影响(我之前遇到的一个问题是 runner 信息页面多出来一个 id 为 <legacy>
的 runner,会被 gitlab 分配任务,但是又不会实际执行,导致 jobs 永远无法执行完成)。
启用 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
注册:注意 token 每次都不一样,url 一定得用内网(如果可能)而不是从公网绕一圈,不然速度跟不上。
gitlab-runner register --url YOUR_URL --token YOUR_TOKEN
修改好 gitlab-runner 的默认镜像。
注册完成后确保 runner 允许 untagged 的任务。gitlab-runner status
这条命令的确是会报错,但是不用管,对结果没有影响。
修改 runner 配置:
sed -i 's,concurrent = 1,concurrent = 2,' /etc/gitlab-runner/config.toml
sed -i -E 's,volumes =.*,volumes = \["/cache"\, "/data/ci/data:/data:ro"\],g' /etc/gitlab-runner/config.toml
sed -i -E 's,\[runners.docker\].*,\[runners.docker\]\n gpus = "all"\n pull_policy = "if-not-present",g' /etc/gitlab-runner/config.toml
限制 GPU
如果不选择全部的 GPU,那么一定要在 gpus 后面加上引号,否则 docker 不能正常识别:
[[runners]]
[[runners.docker]]
gpus = '"device=3,4,5,6"'
限制 CPU
[[runners]]
[[runners.docker]]
cpus = "16"
2024 年 7 月 10 日:一定要用字符串!在配置中使用数字,然后在容器中直接重启服务是没有问题的,但是在容器重启的时候(比如机器断电导致容器关闭)就会有容器无法启动的问题。