gitlab-runner配置问题记录
引言
笔者曾通过2种方式部署过 gitlab-runner
,在 gitlab
中使用这个 runner
拉起 ci job 的过程中或多或少遇到些问题,主要都是 job 中无法访问宿主机的docker 等组件。本篇文档主要记录 gitlab-runner
安装及相关配置。
二进制部署 gitlab-runner
部署
以 arm64 架构的为例
arch="arm64"
curl -LJO "https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/rpm/gitlab-runner-helper-images.rpm"
curl -LJO "https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/rpm/gitlab-runner_${arch}.rpm"rpm -i gitlab-runner-helper-images.rpm gitlab-runner_arm64.rpm
配置 gitlab-runner
这里就是主要出现问题原因所在,要把 gitlab-runner
的执行用户更新为 root
vi /etc/systemd/system/gitlab-runner.service# 修改 "--user" "gitlab-runner" 中的 gitlab-runner 为root,结果如下
ExecStart=/usr/bin/gitlab-runner "run" "--config" "/etc/gitlab-runner/config.toml" "--working-directory" "/home/gitlab-runner" "--service" "gitlab-runner" "--user" "root"systemctl daemon-reload
systemctl restart gitlab-runner
ps aux | grep gitlab-runner
docker 容器部署 gitlab-runner
部署
sudo docker run -d --name gitlab-runner --restart always -u root \-v /srv/gitlab-runner/config:/etc/gitlab-runner \-v /var/run/docker.sock:/var/run/docker.sock \gitlab/gitlab-runner:latest
配置
在正常 gitlab-runner register 后,得到一个新的 runner 会生成配置到配置文件/etc/gitlab-runner/config.toml
中。此时,需要去更新这个文件中的 runner 的 volumes 信息。
[[runners]]executor = "docker"[runners.docker]volumes = ["/var/run/docker.sock:/var/run/docker.sock"] # 必须,主要就是配置这个
配置完成后,执行 gitlab-runner restart
即可。