gitlab-runner

GitLab Runner 注册与管理

补充说明

gitlab-runner 在 GitLab CI 中执行 job,支持 shell、docker、kubernetes 等执行器。Runner 需要注册到 GitLab 实例,并带上正确的标签和并发配置。

常用示例

gitlab-runner --version
gitlab-runner register
gitlab-runner register --non-interactive \
  --url https://gitlab.example.com \
  --token "$RUNNER_TOKEN" \
  --executor docker \
  --docker-image alpine:3.20
gitlab-runner list
gitlab-runner verify
gitlab-runner run
gitlab-runner exec docker test
gitlab-runner unregister --name my-runner
gitlab-runner status

config.toml 关键项:

concurrent = 4
[[runners]]
  name = "docker-runner"
  url = "https://gitlab.example.com"
  token = "glrt-..."
  executor = "docker"
  [runners.docker]
    image = "alpine:3.20"
    privileged = false
    volumes = ["/cache"]

易错点与排错

相关命令

读完自测

合上页面,先回答,再展开对照。

  1. 注册 Runner 时用错项目、群组或实例级令牌会有什么后果?
  2. job 没有被 Runner 接走时,应优先核对什么?
  3. docker 执行器要构建容器时有哪两种方式?privileged 的风险是什么?
答案
  1. 用错范围会导致 Runner 不接对应 job,注册令牌的范围必须与目标 job 匹配。
  2. 核对 Runner 的 tag 与 job 的 tags 是否匹配;不写 tags 的 job 才可能落到无标签 Runner。
  3. 需要挂载 Docker socket 或使用 DinD;privileged 会放大安全风险。