GitLab CE Docker - пустой ответ при использовании другого порта, кроме 80 - PullRequest
0 голосов
/ 27 апреля 2018

Я установил последний образ 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 можно использовать, я запустил другие приложения, которые прослушивают его, и они работают как положено.

Кто-нибудь еще сталкивался с этим, или есть предложения по какой-либо причине, или варианты попробовать?!

Приветствие -Джо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...