正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

環境変数の設定

  • プラン: 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からポート番号を削除してください。