(ПРИМЕЧАНИЕ. Это не проблема 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 , и задание вступило в действие и завершилось.
Вопросы:
- Очевидно, задание смогло подключиться к демону Docker на
начало работы; что он делал, что нужно было подключить
снова?
- Какие условия могут создать временные ситуации невозможности подключения к демону?
- Я проверил вывод
docker logs
для текущего контейнера, и он предоставляет не больше информации, чем то, что я получаю
журнал вставлен выше. Есть ли способ сделать его более многословным в
вход в систему, что он делает?
Соответствующие проблемы с gitlab: