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

GitLab CI Docker镜像中执行docker-compose无法连接守护进程报错求助

报错原因
  1. 新版docker:dind服务默认启用TLS加密,仅开放2376端口提供加密Docker API服务,非加密的2375端口默认关闭。通过pip安装的docker-compose V1版本默认尝试连接docker:2375,且无法自动适配GitLab CI注入的TLS相关环境变量,导致无法连接到Docker守护进程。
  2. Docker-in-Docker服务启动存在延迟,未完全初始化完成就执行docker-compose命令也会触发连接失败错误。
解决方案

方案一:关闭dind TLS校验,适配docker-compose V1默认逻辑

修改.gitlab-ci.yml配置,强制dind关闭TLS、开放2375端口,同时添加等待dind启动完成的逻辑,配置如下:

image: docker
services:
  - name: docker:dind
    command: ["--tls=false"]
variables:
  DOCKER_HOST: tcp://docker:2375
  DOCKER_TLS_CERTDIR: ""
build:
  script:
    # 等待Docker daemon完全启动
    - until docker info; do sleep 1; done
    - apk add py-pip python3-dev libffi-dev openssl-dev gcc libc-dev make
    - pip3 install --upgrade pip
    - pip install docker-compose
    - docker-compose up -d

方案二:使用预安装docker-compose的官方镜像(推荐)

不用手动安装编译依赖,大幅缩短执行时间,同时默认适配TLS配置,配置如下:

image: docker/compose:latest
services:
  - docker:dind
variables:
  DOCKER_HOST: tcp://docker:2376
  DOCKER_TLS_CERTDIR: "/certs"
build:
  script:
    - until docker info; do sleep 1; done
    - docker-compose up -d

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:15:05