在gitlab-ci中,我尝试在Docker容器中运行docker-compose。为此,我使用Docker-in-Docker。要测试一切是否正常,我只需执行一个docker info
命令。但是,当我使用docker-compose图像作为我的图像时,我在执行docker info
时得到以下错误
ERROR: Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running?
如果我使用docker本身作为镜像,则docker info
命令成功。我对此感到困惑,因为docker-compose图像是基于docker图像的。
以下.gitlab-ci.yml会导致docker info命令出现错误:
image: docker/compose:debian-1.26.0
stages:
- test
variables:
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: "/certs"
services:
- docker:19.03.8-dind
test-provider:
stage: test
script:
- docker info
如果我将图像更改为docker:19.03.8
,docker info命令可以正常运行。不知道我到底做错了什么。
发布于 2020-08-07 16:31:57
尝试在脚本部分显式启动dockerd。您还可以添加脚本,以便在docker守护进程启动成功时等待。类似于:
sudo dockerd & timeout -t 9 bash -c "while [ ! -S /var/run/docker.sock ]; do sleep 3 && ls -lah /var/run/; done" || exit 1
https://stackoverflow.com/questions/62361112
复制相似问题