gitlab-runner配置问题记录

发布于:2025-07-22 ⋅ 阅读:(16) ⋅ 点赞:(0)

引言

笔者曾通过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 即可。


网站公告

今日签到

点亮在社区的每一天
去签到