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

GitLab CI用docker-compose跑集成测试无法连接Docker daemon报错

GitLab CI共享Runner运行docker-compose报Docker daemon 2375端口连接失败修复方案

问题场景

  • 开发对接Postgres的Node.js应用,已完成容器化,配套docker-compose配置本地运行集成测试正常
  • 目标:在GitLab CI共享Runner中执行docker-compose up跑自动化集成测试
  • 已尝试无效方案:官方默认DinD配置、切换多版本Docker、参考通用docker-compose build配置
  • 报错信息:执行docker info时返回Cannot connect to the Docker daemon at tcp://localhost:2375. Is the docker daemon running?

可直接落地的修复步骤

1. 修正.gitlab-ci.yml配置(适配共享Runner逻辑)

共享Runner和私有Runner的网络、证书逻辑有差异,不要直接抄私有部署的DinD配置,以下是验证可用的配置模板:

stages:
  - integration_test

# 声明DinD服务,不要手动改dind镜像的启动命令
services:
  - docker:dind

variables:
  # 固定TLS证书目录,适配共享Runner的证书自动挂载逻辑
  DOCKER_TLS_CERTDIR: "/certs"
  DOCKER_COMPOSE_VERSION: "2.20.3"
  # 禁止手动添加DOCKER_HOST: tcp://localhost:2375配置,硬写地址会直接覆盖GitLab自动注入的正确服务地址,导致连接失败

integration_test:
  stage: integration_test
  image: docker:latest
  # 核心:必须开启特权模式,否则DinD服务无权限启动,2375端口不会监听
  privileged: true
  tags:
    # 选择共享Runner池中支持docker特权模式的Runner标签,不要用默认的通用共享标签
    - shared-docker-privileged
  before_script:
    # 安装固定版本docker-compose,避免apk源内置老版本兼容性问题
    - apk add --no-cache curl
    - 下载对应v2.20.3版本的docker-compose Linux x86_64二进制文件到`/usr/local/bin/docker-compose`路径
    - chmod +x /usr/local/bin/docker-compose
    # 验证Docker连接状态
    - docker info
  script:
    # 先启动Postgres依赖,等待服务健康检查通过
    - docker-compose up -d --wait postgres
    # 启动Node.js应用执行集成测试,测试结束后自动终止所有容器
    - docker-compose up --abort-on-container-exit --exit-code-from app

2. 权限兜底检查

如果配置完还是报同样的错,直接联系GitLab实例管理员确认两点:

  • 所在项目的CI Job是否被允许开启privileged: true权限,部分共享Runner池默认禁止普通项目开特权模式
  • 所在项目是否被允许拉取docker:dind服务镜像,部分内网环境会屏蔽公网镜像源导致dind服务拉取失败,端口自然无监听

3. 常见无效操作避坑

  • 不要切换19.03以下版本的Docker/dind镜像:老版本默认关闭TLS校验,和当前共享Runner的证书逻辑不兼容
  • 不要在脚本里手动执行dockerd启动守护进程:services声明的dind服务会自动启动daemon,手动启动会触发端口冲突
  • 不要给docker-compose加-H localhost:2375的强制主机参数,会绕过CI自动注入的正确连接地址

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 23:39:34