Gitlab链接到“https:// gitlab /”

我从官方图像gitlab/gitlab-ce:latest在docker容器中安装了gitlab。 该图像具有文件gitlab.rb中的所有configuration。 Https是由一个nginx反向代理完成的。

我的问题是,当gitlab有自己的绝对链接时,它总是链接到https://gitlab/ 。 这个主机也可以在“新build组”对话框中看到: 组路径以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:latest 

gitlab.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'] = 766 

Nginxconfiguration:

 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; } } 

我试图用nginxreplace错误的URL。 这在外观上就像在屏幕截图中一样,但不适用于链接:

 sub_filter 'https://gitlab/' 'https://$host/'; sub_filter_once off; 

您已经在映射卷/etc/gitlab/gitlab.rb正确设置了您的url

 external_url 'https://git.mydomain.com' 

运行sudo gitlab-ctl reconfigure使更改生效。

问题解决了。 这是在nginx反向代理configuration。 我命名上游的“gitlab”,不知何故这个名字发现它的方式进入网页:

 upstream gitlab { server 172.18.0.2; } ... proxy_pass http://gitlab/; 

我没想到。 我甚至省略了原来问题中的上游部分,因为我认为上游名称只是一个内部名称,将被定义的IPreplace。

所以对我来说,解决的办法是把完整的领域写入上游:

 upstream git.mydomain.com{ server 172.18.0.2; } ... proxy_pass http://git.mydomain.com/;