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

GitLab CI Docker执行器创建容器失败,求解决方案

解决GitLab Runner Docker执行器容器启动失败(broken pipe)的思路

你遇到的这个错误是典型的GitLab Runner与Docker运行时交互的兼容性问题,结合你的配置和错误日志,我提供几个具体的排查和解决方向:

1. 优先升级GitLab Runner版本

你当前使用的gitlab-ci-multi-runner 9.5.1是非常老旧的版本(发布于2018年),它和新版本的Docker Daemon存在很多已知的兼容性问题,尤其是OCI运行时通信相关的bug。建议直接升级到最新的稳定版Runner(比如16.x系列),新版修复了大量容器创建、挂载相关的问题,大概率能解决这个broken pipe的报错。

升级步骤参考:

  • 停止当前Runner服务:sudo gitlab-runner stop
  • 下载对应系统的新版本Runner替换现有二进制文件
  • 重启服务:sudo gitlab-runner restart
  • 重新注册Runner(如果需要)

2. 检查Docker Daemon版本兼容性

确保你的Docker Daemon版本和GitLab Runner版本匹配。老版本Docker(比如18.09之前)可能不支持Runner新版本的某些容器启动参数,反之老旧Runner也无法适配新版Docker的OCI运行时规范。

  • 查看当前Docker版本:docker --version
  • 参考GitLab官方的版本兼容性矩阵,调整Docker或Runner版本到兼容组合

3. 调整Runner的Docker配置

打开Runner的config.toml配置文件(通常在/etc/gitlab-runner/目录下),尝试以下调整:

  • 添加privileged = true到[runners.docker]段(注意:此配置会赋予容器更高权限,仅在测试时使用,生产环境需谨慎)
  • 检查volumes配置,确保/builds目录挂载正确,比如设置为:volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/builds:/builds", "/cache"]
  • 尝试添加disable_cache = true临时禁用缓存,排查是否是缓存目录挂载导致的问题

4. 验证基础镜像的可用性

先在本地测试镜像是否能正常启动,排除镜像本身的问题:

docker pull jakzal/phpqa:php7.3-alpine
docker run --rm -it jakzal/phpqa:php7.3-alpine sh

如果本地启动也失败,说明镜像可能损坏或与你的服务器架构不兼容(比如x86镜像在ARM服务器上运行):

  • 尝试重新拉取镜像:docker rmi jakzal/phpqa:php7.3-alpine && docker pull jakzal/phpqa:php7.3-alpine
  • 替换为更基础的镜像,比如php:7.3-alpine,然后在gitlab-ci.yml中手动安装composer:
    composer-validate:
      image: php:7.3-alpine
      stage: composer_validate
      before_script:
        - php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
        - php composer-setup.php --install-dir=/usr/local/bin --filename=composer
      script:
        - composer validate
    

5. 检查Runner执行环境的基础问题

  • 检查服务器磁盘空间:df -h,确保/builds所在分区有足够空间
  • 检查/builds目录权限:ls -ld /builds,确保Runner用户(通常是gitlab-runner)拥有读写权限
  • 重启Docker Daemon:sudo systemctl restart docker,有时候Docker服务异常会导致容器创建失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 22:47:32