Я установил последний образ Docker GitLab Community Edition. Среда - macOS (High Sierra) с установленным Docker Community Edition.
Я следовал инструкции по запуску образа GitLab:
https://docs.gitlab.com/omnibus/docker/
Я не делал никаких изменений в работающем контейнере (например, не изменял файл gitlab.rb), просто запустил образ с хоста.
Кажется, все работает хорошо, если я использую порты по умолчанию, например 80 для HTTP, например
sudo docker run --detach \
--hostname gitlab.example.com \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.example.com'; gitlab_rails['gitlab_shell_ssh_port'] = 22;" \
--publish 192.168.0.119:443:443 \
--publish 192.168.0.119:80:80 \
--publish 192.168.0.119:22:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
Я хочу запустить GitLab на нестандартных портах, например 10080 для HTTP, поэтому измените команду docker следующим образом:
sudo docker run --detach \
--hostname gitlab.example.com \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.example.com:10080'; gitlab_rails['gitlab_shell_ssh_port'] = 22;" \
--publish 192.168.0.119:443:443 \
--publish 192.168.0.119:10080:80 \
--publish 192.168.0.119:22:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
Но это приводит к «пустому ответу с сервера» при попытке получить доступ к панели инструментов GitLab через веб-браузер или curl, здесь выполняется curl:
$ curl -v http://192.168.0.119:10080
* Rebuilt URL to: http://192.168.0.119:10080/
* Trying 192.168.0.119...
* TCP_NODELAY set
* Connected to 192.168.0.119 (192.168.0.119) port 10080 (#0)
> GET / HTTP/1.1
> Host: 192.168.0.119:10080
> User-Agent: curl/7.58.0
> Accept: */*
>
* Empty reply from server
* Connection #0 to host 192.168.0.119 left intact
curl: (52) Empty reply from server
Я также могу запустить lsof, чтобы убедиться, что док-контейнер GitLab действительно прослушивает порт
$ lsof -nP -i4TCP:10080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
com.docke 890 jo 19u IPv4 0x871834297e946edb 0t0 TCP 192.168.0.119:10080 (LISTEN)
Чтобы убедиться, что порт 10080 можно использовать, я запустил другие приложения, которые прослушивают его, и они работают как положено.
Кто-нибудь еще сталкивался с этим, или есть предложения по какой-либо причине, или варианты попробовать?!
Приветствие
-Джо