You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义Docker Runner权限不足导致CI Job失败,如何解决?

解决自定义Docker Runner在CI任务中的执行错误

常见问题修复方案

1. 检查Docker守护进程状态

如果主机上Docker服务未运行,会直接导致Runner调用失败:

  • 查看服务状态:
    sudo systemctl status docker
    
  • 启动服务并设置开机自启:
    sudo systemctl start docker
    sudo systemctl enable docker
    

2. 给Runner用户添加Docker操作权限

自定义Runner默认使用gitlab-runner用户,该用户需要加入docker组才能操作Docker:

  • 将用户加入docker组:
    sudo usermod -aG docker gitlab-runner
    
  • 重启Runner服务生效:
    sudo gitlab-runner restart
    

3. 配置Runner挂载Docker套接字

如果CI任务需要在容器内调用Docker(比如构建镜像),必须在Runner配置中挂载主机的Docker套接字:

  • 编辑Runner配置文件(通常路径为/etc/gitlab-runner/config.toml),在runners.docker段落添加:
    volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
    
  • 重启Runner服务:
    sudo gitlab-runner restart
    

4. 解除SELinux/AppArmor限制

如果主机启用了SELinux,可能会阻止Runner访问Docker套接字:

  • 临时关闭SELinux测试:
    sudo setenforce 0
    
  • 若测试有效,可修改SELinux配置为宽容模式(生产环境建议配置专用规则,而非直接关闭):
    sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
    

内容的提问来源于stack exchange,提问作者Keith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 16:18:21