我从官方镜像gitlab/gitlab-ce:latest中将gitlab安装在docker容器中。此映像的所有配置都在文件gitlab.rb中。Https是由nginx反向代理完成的。
我的问题是,当gitlab有一个绝对链接到它自己时,它总是链接到https://gitlab/。在“新建组”对话框中也可以看到该主机:

Docker调用:
docker run \
--name git \
--net mydockernet \
--ip 172.18.0.2 \
--hostname git.mydomain.com \
--restart=always \
-p 766:22 \
-v /docker/gitlab/config:/etc/gitlab \
-v /docker/gitlab/logs:/var/log/gitlab \
-v /docker/gitlab/data:/var/opt/gitlab \
-d \
gitlab/gitlab-ce:latestgitlab.rb:
external_url 'https://git.mydomain.com'
ci_nginx['enable'] = false
nginx['listen_port'] = 80
nginx['listen_https'] = false
gitlab_rails['gitlab_shell_ssh_port'] = 766Nginx配置:
upstream gitlab {
server 172.18.0.2;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name git.mydomain.com;
ssl on;
ssl_certificate /etc/ssl/certs/mydomain.com.chained.pem;
ssl_certificate_key /etc/ssl/private/my.key;
location / {
proxy_pass http://gitlab/;
proxy_read_timeout 10;
}
}我试图用nginx替换错误的url。这对屏幕截图中的外观有效,但对链接无效:
sub_filter 'https://gitlab/' 'https://$host/';
sub_filter_once off;发布于 2017-08-25 03:45:09
问题解决了。它在nginx反向代理配置中。我将上游命名为"gitlab“,不知何故,这个名字出现在了网页上:
upstream gitlab {
server 172.18.0.2;
}
...
proxy_pass http://gitlab/;我没想到会这样。我甚至在原问题中省略了上游部分,因为我认为上游名称只是一个内部名称,将被定义的ip替换。
因此,我的解决方案是,将完整的域名写入上游:
upstream git.mydomain.com{
server 172.18.0.2;
}
...
proxy_pass http://git.mydomain.com/;发布于 2016-11-15 01:57:27
您已在映射的卷/etc/gitlab/gitlab.rb中正确设置了url
external_url 'https://git.mydomain.com'运行sudo gitlab-ctl reconfigure以使更改生效。
https://stackoverflow.com/questions/38583505
复制相似问题