我安装了最新的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
答案 0 :(得分:0)
不敢相信这已经 3 年没有答案了
更改:'http://gitlab.example.com:10080'
到 'http://localhost:80'
那个 url 需要反映内部端口,而不是映射的端口,它应该是实际的 url。本地主机工作。 IP地址。无论您的主机名是什么都可以使用。