ложное "не удается подключиться к демону Docker" в середине задания CI - PullRequest
0 голосов
/ 11 апреля 2019

(ПРИМЕЧАНИЕ. Это не проблема docker-in-docker (dind))

У меня есть общий gitlab-ci-multirunner (gitlab-runner запускается из образа докера в контейнере), настроенный на более старом, но довольно работоспособном хосте (64 ядра, 384 Гб памяти, 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:

...