環境変数の設定
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
必要に応じて、/etc/gitlab/gitlab.rbを使用して、Puma、Sidekiq、Rails、Rakeで使用されるカスタム環境変数を設定できます。これは、インターネットにアクセスするためにプロキシを使用する必要があり、外部でホストされているリポジトリをGitLabに直接クローンする必要がある場合に役立ちます。/etc/gitlab/gitlab.rbで、gitlab_rails['env']をハッシュ値とともに指定します。例:
gitlab_rails['env'] = {
"http_proxy" => "http://<USERNAME>:<PASSWORD>@example.com:8080",
"https_proxy" => "http://<USERNAME>:<PASSWORD>@example.com:8080"
# "no_proxy" => ".yourdomain.com" # Wildcard syntax if you need your internal domain to bypass proxy. Do not specify a port.
}プロキシの背後にいる場合は、必要になる可能性がある他のGitLabコンポーネントから環境変数をオーバーライドすることもできます:
# Needed for proxying Git clones
gitaly['env'] = {
"http_proxy" => "http://<USERNAME>:<PASSWORD>@example.com:8080",
"https_proxy" => "http://<USERNAME>:<PASSWORD>@example.com:8080"
}
gitlab_workhorse['env'] = {
"http_proxy" => "http://<USERNAME>:<PASSWORD>@example.com:8080",
"https_proxy" => "http://<USERNAME>:<PASSWORD>@example.com:8080"
}
gitlab_pages['env'] = {
"http_proxy" => "http://<USERNAME>:<PASSWORD>@example.com:8080",
"https_proxy" => "http://<USERNAME>:<PASSWORD>@example.com:8080"
}
# If you use the docker registry
registry['env'] = {
"http_proxy" => "http://<USERNAME>:<PASSWORD>@example.com:8080",
"https_proxy" => "http://<USERNAME>:<PASSWORD>@example.com:8080"
}GitLabは、プロキシURLにユーザー名とパスワードが含まれている場合、HTTP基本認証の使用を試みます。
プロキシの設定では、グロビングに.構文を使用します。
プロキシのURL値は、通常はhttp://のみである必要があります。ただし、プロキシ自体に独自のSSL証明書があり、SSLが有効になっている場合は除きます。つまり、https_proxy値の場合でも、通常は値をhttp://<USERNAME>:<PASSWORD>@example.com:8080として指定する必要があります。
HTTP_PROXYまたはHTTPS_PROXY環境変数が設定されていて、ドメインのDNS解決ができない場合、DNSリバインド保護は無効化されます。
変更の適用
環境変数に加えられた変更を有効にするには、再構成が必要です。
再構成を実行します:
sudo gitlab-ctl reconfigureトラブルシューティング
環境変数が設定されていません
同じ['env']に複数のエントリが存在しないことを確認してください。最後のエントリが前のエントリをオーバーライドします。この例では、NTP_HOSTは設定されません:
gitlab_rails['env'] = { 'NTP_HOST' => "<DOMAIN_OF_NTP_SERVICE>" }
gitlab_rails['env'] = {
"http_proxy" => "http://<USERNAME>:<PASSWORD>@example.com:8080",
"https_proxy" => "http://<USERNAME>:<PASSWORD>@example.com:8080"
}エラー: Connection reset by peer (ミラーリングリポジトリの場合)
no_proxy値にURLのポート番号が含まれている場合、DNS解決が失敗する可能性があります。この問題を解決するには、no_proxy URLからポート番号を削除してください。