Наберите таймаут ввода-вывода tcp с помощью Docker в сборке Gitlab CI

У меня возникла проблема в течение нескольких дней, которую я не могу понять, позвольте исправить.

Я работаю над настройкой частной среды реестра Gitlab + Gitlab CI + Gitlab Docker для размещения и тестирования моего кода, а также для создания из него образов докеров в средстве выполнения.

Я пытаюсь создать образ Docker в средстве выполнения Gitlab, используя образ docker: dind. У меня следующая ошибка:

gitlab-ci-multi-runner 1.3.2 (0323456)
Using Docker executor with image docker:latest ...
Pulling docker image docker:dind ...
Starting service docker:dind ...
Waiting for services to be up and running...
Pulling docker image docker:latest ...
Running on runner-c682f650-project-23-concurrent-0 via 4b1582b2cffb...
Fetching changes...
HEAD is now at 7f10ed4 Finalize Docker and Gitlab CI workflow
Checking out 7f10ed4c as gitlab-ci-docker...
$ docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.ademis.com:5005
Error response from daemon: Get https://registry.ademis.com:5005/v1/users/: dial tcp 46.105.98.95:5005: i/o timeout

Я пробовал разные вещи, в том числе: - пинг на любой IP-адрес работает правильно - порт открыт (когда я пытаюсь войти в другой реестр на порте 5005, он работает) - вход с моего локального компьютера работает правильно

Моя архитектура - это полноценный докер на сервере. У меня есть три основных контейнера (у меня есть и другие, но не связанные с этой проблемой):

jwilder/nginx-proxy            devserver_front_1
    0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp

gitlab/gitlab-ce:latest        devserver_gitlab_1
    80/tcp, 0.0.0.0:22->22/tcp, 0.0.0.0:5000->5000/tcp, 0.0.0.0:5005->5005/tcp, 443/tcp

gitlab/gitlab-runner:latest    devserver_runner_1

HTTP-доступ к Gitlab (порт 80) осуществляется через jwilder / nginx-proxy, но доступ Git и доступ к реестру Docker являются прямыми.

Когда я запускаю сборку, я использую исполнитель Docker, таким образом создается контейнер Docker:

8ae8af78bc1b                   runner-c682f650-project-23-concurrent-0-cache-b36a40d3c05f7c6ff01d711a44f0d239

Моя проблема, кажется, внутри этого контейнера. Однако обычные подозрения, которые я имел в виду (сеть и DNS), хорошо работают с другими IP / доменами, поэтому я не имею ни малейшего представления о проблеме.

Любая идея?


person Titouan Galopin    schedule 01.07.2016    source источник


Ответы (1)


Я предполагаю, что здесь ваш реестр работает на том же хосте Docker, поэтому я предполагаю, что связь от хоста к самому хосту по общедоступному IP-адресу нарушена, вероятно, из-за неправильных правил iptables или чего-то подобного.

person Tugdual Saunier    schedule 01.07.2016
comment
Вот и все! Я попытался сбросить iptables на хосте, и он работает правильно. Спасибо! Я адаптирую свою конфигурацию iptables. - person Titouan Galopin; 01.07.2016
comment
Я потерял несколько дней на поиск причины странного поведения, связанного с ошибкой тайм-аута ввода-вывода реестра gitlab, и все. Спасибо за предложение, помогло. Это были нарушены правила iptables. - person Ivan Bondarev; 16.06.2020