我使用GitLab CE docker镜像,并希望在主机的不同端口上公开GitLab。
中读到了一些说明要在8929上公开Web界面,在2289上公开SSH服务,请使用以下docker run命令:
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 8929:80 --publish 2289:22 \
...
gitlab/gitlab-ce:latest
第二,你需要配置gitlab.rb:
#Set external_url:
external_url "http://gitlab.example.com:8929/"
...
# Set gitlab_shell_ssh_port:
gitlab_rails['gitlab_shell_ssh_port'] = 2289
但是在启动容器之后我发现容器中的 gitlab可以从http://localhost:8929访问,但不能访问http://localhost:80。
也许文件犯了一个错误,但错误是如此愚蠢,我不确定。
我认为不需要第二步,是吗?
答案 0 :(得分:0)
一切正常吗?也许你需要改写你的问题来说明你真正想要它做什么,但这就是它的工作原理:
Docker容器公开端口80.现在,在命令行上指定--publish 8929:80
告诉它使端口80在主机上的端口8929上可用。这就是http://localhost:8929正确显示Gitlab安装的原因。
这也意味着在外部URL中设置端口确实是必要的,否则Gitlab将无法正确构建链接到安装的URL。
如果您只想逐字使用暴露的端口,而无需重新映射,只需使用-P
的{{1}}标记。
有关详细信息,请参阅Docker documentation