私有GitLab Runner(Docker执行器)报错:缺失Docker配置
问题:GitLab Runner Docker执行器报错"missing docker configuration"
执行GitLab项目Job时,反复出现如下报错:
Preparing the "docker" executor 00:09 ERROR: Preparation failed: missing docker configuration Will be retried in 3s ... ERROR: Preparation failed: missing docker configuration Will be retried in 3s ... ERROR: Preparation failed: missing docker configuration Will be retried in 3s ... ERROR: Job failed (system failure): missing docker configuration
环境配置信息
VPS上的config.toml配置
concurrent = 1 check_interval = 0 shutdown_timeout = 0 [session_server] session_timeout = 1800 [[runners]] name = "furmanus" url = "https://gitlab.com" id = <id_here> token = "<token_here>" token_obtained_at = <obtain_date> token_expires_at = <expiry_date> executor = "docker" [runner.docker] tls_verify = false image = "gitlab/gitlab-runner:latest" priviledged = false disable_cache = false volumes = ["/cache"] pull_policy = "if-not-present" cache_dir = "/cache/gitlab"
项目.gitlab-ci.yml示例
image: node:18-alpine stages: - install - build install: stage: install tags: - furmanus script: - npm install cache: key: files: - package.json - package-lock.json paths: - node_modules policy: push build: stage: build tags: - furmanus dependencies: - install script: - echo "install"
已知条件:VPS上gitlab-runner用户已具备Docker操作权限和配置文件读取权限。
问题排查与修复方案
1. 核心错误:配置项拼写错误
config.toml中[runner.docker]段的priviledged是拼写错误,正确的配置项应为privileged(少写了一个字母e)。这个错误会导致GitLab Runner无法正确识别Docker执行器的配置,从而抛出"missing docker configuration"错误。
2. 修复步骤
- 编辑
/etc/gitlab-runner/config.toml,将priviledged = false修改为privileged = false - 重启GitLab Runner服务:
sudo gitlab-runner restart
3. 可选优化建议
- 默认镜像调整:当前配置的
image = "gitlab/gitlab-runner:latest"是GitLab Runner自身的镜像,并非适合执行Job的通用基础镜像,建议替换为alpine:latest或ubuntu:latest这类通用镜像,避免潜在的环境不兼容问题。 - 缓存目录配置:
cache_dir在Docker执行器中是容器内的路径,当前配置的/cache/gitlab需确保对应的volume挂载正确,不过这不是本次报错的直接原因。
完成上述修复后,重新触发Job即可正常执行。
内容的提问来源于stack exchange,提问作者Furman
相关产品推荐
相关产品推荐

