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

1ステップのインポート

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

オフラインガベージコレクションを定期的に実行する場合は、ワンステップインポート方式を使用してください。この方法は、3段階のインポート方法よりも簡単な操作です。

ワンステップインポート

レジストリは、インポート中はシャットダウンするか、read-onlyモードのままにする必要があります。そうしないと、インポート中に書き込まれたデータにアクセスできなくなったり、不整合が発生したりする可能性があります。

  1. /etc/gitlab/gitlab.rbファイルのregistry['database']セクションで、データベースが無効になっていることを確認します:

    registry['database'] = {
      'enabled' => false, # Must be false!
    }
  2. レジストリがread-only読み取り専用モードに設定されていることを確認します。

    /etc/gitlab/gitlab.rbを編集し、maintenanceセクションをregistry['storage']設定に追加します。たとえば、gcsバックエンドレジストリでgs://my-company-container-registryバケットを使用する場合、設定は次のようになります:

    ## Object Storage - Container Registry
    registry['storage'] = {
      'gcs' => {
        'bucket' => '<my-company-container-registry>',
        'chunksize' => 5242880
      },
      'maintenance' => {
        'readonly' => {
          'enabled' => true # Must be set to true.
        }
      }
    }
  3. ファイルを保存してGitLabを再設定します。

  4. データベースの移行を適用

  5. 次のコマンドを実行します:

    sudo -u registry gitlab-ctl registry-database import --log-to-stdout
  6. コマンドが正常に完了すると、レジストリは完全にインポートされます。データベースを有効にし、設定で読み取り専用モードをオフにして、レジストリサービスを開始できます:

    registry['database'] = {
      'enabled' => true, # Must be enabled now!
    }
    
    ## Object Storage - Container Registry
    registry['storage'] = {
      'gcs' => {
        'bucket' => '<my-company-container-registry>',
        'chunksize' => 5242880
      },
      'maintenance' => {
        'readonly' => {
          'enabled' => false
        }
      }
    }
  7. ファイルを保存してGitLabを再設定します。

前提条件:

  1. /etc/gitlab/gitlab.rbファイルにdatabaseセクションを追加しますが、最初にメタデータデータベースを無効にして開始します:

    registry['database'] = {
      'enabled' => false, # Must be false!
      'host' => '<registry_database_host_placeholder_change_me>',
      'port' => 5432, # Default, but set to the port of your database instance if it differs.
      'user' => '<registry_database_username_placeholder_change_me>',
      'password' => '<registry_database_placeholder_change_me>',
      'dbname' => '<registry_database_name_placeholder_change_me>',
      'sslmode' => 'require', # See the PostgreSQL documentation for additional information https://www.postgresql.org/docs/16/libpq-ssl.html.
      'sslcert' => '</path/to/cert.pem>',
      'sslkey' => '</path/to/private.key>',
      'sslrootcert' => '</path/to/ca.pem>'
    }
  2. レジストリがread-only読み取り専用モードに設定されていることを確認します。

    /etc/gitlab/gitlab.rbを編集し、maintenanceセクションをregistry['storage']設定に追加します。たとえば、gcsバックのレジストリでgs://my-company-container-registryバケットを使用する場合、設定は次のようになります:

    ## Object Storage - Container Registry
    registry['storage'] = {
      'gcs' => {
        'bucket' => '<my-company-container-registry>',
        'chunksize' => 5242880
      },
      'maintenance' => {
        'readonly' => {
          'enabled' => true # Must be set to true.
        }
      }
    }
  3. ファイルを保存してGitLabを再設定します。

  4. まだデータベースの移行を適用していない場合。

  5. 次のコマンドを実行します:

    sudo gitlab-ctl registry-database import
  6. コマンドが正常に完了すると、レジストリは完全にインポートされます。データベースを有効にし、設定で読み取り専用モードをオフにして、レジストリサービスを開始できるようになりました:

    registry['database'] = {
      'enabled' => true, # Must be enabled now!
      'host' => '<registry_database_host_placeholder_change_me>',
      'port' => 5432, # Default, but set to the port of your database instance if it differs.
      'user' => '<registry_database_username_placeholder_change_me>',
      'password' => '<registry_database_placeholder_change_me>',
      'dbname' => '<registry_database_name_placeholder_change_me>',
      'sslmode' => 'require', # See the PostgreSQL documentation for additional information https://www.postgresql.org/docs/16/libpq-ssl.html.
      'sslcert' => '</path/to/cert.pem>',
      'sslkey' => '</path/to/private.key>',
      'sslrootcert' => '</path/to/ca.pem>'
    }
    
    ## Object Storage - Container Registry
    registry['storage'] = {
      'gcs' => {
        'bucket' => '<my-company-container-registry>',
        'chunksize' => 5242880
      },
      'maintenance' => {
        'readonly' => {
          'enabled' => false
        }
      }
    }
  7. ファイルを保存してGitLabを再設定します。

すべての操作でメタデータデータベースを使用できるようになりました。