2

公式イメージからgitlabをdockerコンテナにインストールしましたgitlab/gitlab-ce:latest。このイメージには、すべての構成がファイルに含まれていますgitlab.rb。https は nginx リバース プロキシによって行われます。

私の問題は、gitlab がそれ自体への絶対リンクを持っている場合、常に にリンクすることhttps://gitlab/です。このホストは、[新しいグループ] ダイアログにも表示されます。グループ パスは https://gitlab/ で始まります

ドッカー呼び出し:

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

Nginx の設定:

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

間違った URL を nginx に置き換えようとしました。これは、スクリーンショットのような外観では機能しましたが、リンクでは機能しませんでした:

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

2 に答える 2

0

問題が解決しました。nginx リバース プロキシ設定にありました。アップストリームに「gitlab」という名前を付けましたが、どういうわけか、この名前が Web ページに入り込んでいることがわかりました。

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/;
于 2017-08-24T19:45:08.737 に答える
0

マップされたボリュームに URL を正しく設定しました/etc/gitlab/gitlab.rb

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

実行sudo gitlab-ctl reconfigureして変更を有効にします。

于 2016-11-14T17:57:26.570 に答える