CI作业中间出现虚假的“无法连接到docker daemon”

时间:2019-04-11 16:14:16

标签: docker gitlab gitlab-ci

(注意:这不是docker-in-docker(dind)问题)

我有一个共享的gitlab-ci-multirunner(gitlab-runner从容器中的docker映像运行),该主机设置在较旧但性能强大的主机(64核,384Gb内存,用于docker卷的PCI NVME SSD)上, ubuntu 16.04)。有时,由于无法连接到docker守护程序,我将因作业失败。如果我重试该工作,它通常会成功。这些工作都不需要docker-in-docker功能,几乎消除了我在stackoverflow上找到的所有答案。

最奇怪的是,这种失败不是在工作开始时发生的,而是在中间发生的。请参阅以下经过净化的实际日志...

Running with gitlab-runner 11.3.1 (0aa5179e)
  on gitlab-runner06-0 a3855d00
Using Docker executor with image docker.exegy.net/mde/centos7-gcc7:20190214 ...
Pulling docker image docker.exegy.net/blah/centos7-gcc7:20190214 ...
Using docker image sha256:b94ea117fe5d54681c12d0001c5b509bcc7011fc020148f63ca65f49a8575803 for docker.exegy.net/blah/centos7-gcc7:20190214 ...
Running on runner-a3855d00-project-201-concurrent-0 via bc9881173d1f...
Fetching changes...
Removing _automation/build_utils.pyc
Removing _automation/changed_targets.pyc
Removing _automation/cmake.pyc
[...sanitized...]
Removing include
Removing lib/
Removing tests/
HEAD is now at 50b24d896 Merge remote-tracking branch 'origin/master' into test/branch-to-build
From https://internal-gitlab-server/someproject
 - [deleted]             (none)     -> origin/dev/branch-to-build
   50b24d896..3380023c7  test/branch-to-build -> origin/test/branch-to-build
Checking out 3380023c as test/branch-to-build...
Skipping Git submodules setup
ERROR: Job failed (system failure): Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? (executor_docker.go:924:120s)

当此特定作业失败时,运行程序上没有其他作业,并且物理主机完全专用于运行gitlab CI。几分钟后,我注意到它失败了,按下 RETRY 按钮,该作业立即生效并完成。

问题:

  1. 很显然,该作业能够在以下位置连接到docker守护程序 工作开始;它需要做什么才能连接 再来一次?
  2. 什么样的条件会造成无法连接到守护程序的短暂情况?
  3. 我已经检查了当前容器的docker logs的输出,它没有提供比我得到的更多的信息 上面粘贴的日志。有没有办法让它更详细 记录正在做什么?

相关的gitlab问题:

0 个答案:

没有答案