GitLab CE Docker - 使用80以外的其他端口时为空响应

时间:2018-04-27 11:21:06

标签: macos docker gitlab port

我安装了最新的GitLab Community Edition Docker镜像。环境是安装了Docker Community Edition的macOS(High Sierra)。

我已按照此处的说明了解如何启动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

但是当尝试使用Web浏览器或卷曲访问GitLab仪表板时,这会导致“来自服务器的空回复”,这里是curl run:

$ 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 docker容器确实正在侦听端口

$ 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是否可用,我已经运行了其他应用程序,并且它们按预期工作。

其他人遇到此问题,或者对原因可能有什么建议,或尝试选择?!

干杯 -jo

1 个答案:

答案 0 :(得分:0)

不敢相信这已经 3 年没有答案了

更改:'http://gitlab.example.com:10080''http://localhost:80'

那个 url 需要反映内部端口,而不是映射的端口,它应该是实际的 url。本地主机工作。 IP地址。无论您的主机名是什么都可以使用。