У меня проблемы при попытке запустить GitLab CE и GitLab CI Runner в контейнерах Docker.
Вот так я запускаю контейнер GitLab CE:
docker run --detach \
--name gitlab \
--hostname gitlab.local \
--publish 80:80 \
--restart always \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.local/';" \
--volume ~/volumes/gitlab/config:/etc/gitlab \
--volume ~/volumes/gitlab/logs:/var/log/gitlab \
--volume ~/volumes/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce
Затем Я могу без проблем подключиться к GitLab на хосте как через локально связанный интерфейс - т.е. http://localhost
- так и через IP-адрес контейнера - т.е. http://gitlab.local
после добавления, например, 172.17.0.2 gitlab gitlab.local
в мой файл hosts).
Проблемы возникают при попытке зарегистрировать контейнер GitLab CI Runner через:
docker run --rm --tty --interactive \
--name gitlab-runner-register \
--add-host "gitlab.local:172.17.0.2" \
--link=gitlab \
--volume ~/volumes/gitlab-runner:/etc/gitlab-runner \
gitlab/gitlab-runner \
register \
--non-interactive \
--executor "docker" \
--docker-image alpine:3 \
--url "http://gitlab.local/" \
--registration-token "XXXXXXXXXXXX" \
--description "docker-runner" \
--tag-list "docker" \
--run-untagged \
--locked="false"
Я получаю следующие ошибки:
ERROR: Registering runner... failed runner=XXXXXX status=couldn't execute POST against http://gitlab.local/api/v4/runners: Post http://gitlab.local/api/v4/runners: dial tcp 172.17.0.2:80: getsockopt: connection refused
PANIC: Failed to register this runner. Perhaps you are having network problems
Некоторая помощь?Заранее спасибо!
ОБНОВЛЕНИЕ: Я также пытался связать BusyBox с контейнером gitlab
.Pinging работает как шарм, но wget
ting дает Connection refused
:
$ docker run --rm --link=gitlab busybox ping -c 1 gitlab
PING gitlab (172.17.0.2): 56 data bytes
64 bytes from 172.17.0.2: seq=0 ttl=64 time=0.124 ms
--- gitlab ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.124/0.124/0.124 ms
$ docker run --rm --link=gitlab busybox wget http://gitlab
Connecting to gitlab (172.17.0.2:80)
wget: can't connect to remote host (172.17.0.2): Connection refused
Так что работа в сети работает нормально и, вероятно, «проблема» больше связана с привязкой.В качестве демонстрации этого я попытался запустить http-сервер Python в контейнере gitlab
, чтобы повторить команду wget
и ... она работает:
$ docker run --rm --link=gitlab busybox wget http://gitlab:8000
Connecting to gitlab:8000 (172.17.0.2:8000)
index.html 100% |********************************| 1065 0:00:00 ETA