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

外部PostgreSQLサービスを使用したGitLabの設定

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed

GitLabをクラウドプロバイダーでホストしている場合、オプションでPostgreSQLのマネージドサービスを使用できます。たとえば、AWSでは、PostgreSQLを実行するマネージドAmazon Relational Database Service(RDS)が提供されています。

または、Linuxパッケージとは別に、PostgreSQLのインスタンスまたはクラスターを自分で管理することもできます。

クラウドマネージドサービスを使用するか、独自のPostgreSQLインスタンスを提供する場合は、データベース要件ドキュメントに従ってPostgreSQLを設定してください。

GitLab Railsデータベース

外部PostgreSQLサーバーをセットアップした後:

  1. データベースサーバーにログインします。

  2. 任意のパスワードを持つgitlabユーザーをセットアップし、gitlabhq_productionデータベースを作成して、ユーザーにデータベースのオーナーにしてください。この設定例は、セルフコンパイルインストールドキュメントに記載されています。

  3. クラウドマネージドサービスを使用している場合は、gitlabユーザーに追加のロールを付与する必要がある場合があります:

    これは、インストールおよびアップグレード中の拡張機能のインストール用です。別の方法として、拡張機能が手動でインストールされていることを確認し、今後のGitLabアップグレードで発生する可能性のある問題について読んでください

  4. 外部PostgreSQLサービスの適切な接続の詳細を使用して、GitLabアプリケーションサーバーを/etc/gitlab/gitlab.rbファイルで構成します:

    # Disable the bundled Omnibus provided PostgreSQL
    postgresql['enable'] = false
    
    # PostgreSQL connection details
    gitlab_rails['db_adapter'] = 'postgresql'
    gitlab_rails['db_encoding'] = 'unicode'
    gitlab_rails['db_host'] = '10.1.0.5' # IP/hostname of database server
    gitlab_rails['db_port'] = 5432
    gitlab_rails['db_password'] = 'DB password'

    GitLabマルチノード設定の詳細については、参照アーキテクチャを参照してください。

  5. 変更を有効にするには、GitLabを再設定してください:

    sudo gitlab-ctl reconfigure
  6. TCPポートを有効にするには、PostgreSQLを再起動します:

    sudo gitlab-ctl restart

コンテナレジストリのメタデータデータベース

コンテナレジストリメタデータデータベースを使用する予定がある場合は、レジストリデータベースとユーザーも作成する必要があります。

外部PostgreSQLサーバーをセットアップした後:

  1. データベースサーバーにログインします。

  2. 次のSQLコマンドを使用して、ユーザーとデータベースを作成します:

    -- Create the registry user
    CREATE USER registry WITH PASSWORD '<your_registry_password>';
    
    -- Create the registry database
    CREATE DATABASE registry OWNER registry;
  3. クラウドマネージドサービスの場合は、必要に応じて追加のロールを付与します:

    GRANT rds_superuser TO registry;
    GRANT azure_pg_admin TO registry;
    GRANT cloudsqlsuperuser TO registry;
  4. コンテナレジストリメタデータデータベースを有効にして使用を開始できるようになりました。

トラブルシューティング

SSL SYSCALL error: EOF detectedエラーを解決する

外部PostgreSQLインスタンスを使用すると、次のようなエラーが表示されることがあります:

pg_dump: error: Error message from server: SSL SYSCALL error: EOF detected

このエラーを解決するには、PostgreSQLの最小要件を満たしていることを確認してください。RDSインスタンスをサポート対象のバージョンにアップグレードすると、このエラーなしにバックアップを実行できるようになります。詳細については、issue 64763を参照してください。