依存プロキシ・ストレージの削減

ブロブには自動削除プロセスがありません。手動で削除しない限り、無期限に保存されます。これはストレージ使用クォータに影響するため、未使用のアイテムをキャッシュから削除することが重要です。このページでは、そのためのいくつかのオプションについて説明します。

依存プロキシのストレージ使用量の確認

使用量割り当て]ページ([設定]→[使用量割り当て]→[ストレージ])には、依存プロキシを含むパッケージのストレージ使用量が表示されますが、ストレージはまだ表示されません。

API を使用してキャッシュをクリアします。

不要になったイメージBLOBが使用するディスクスペースを取り戻すには、依存プロキシAPIを使用してキャッシュ全体をクリアします。キャッシュをクリアすると、次にパイプラインを実行するときにDocker Hubからイメージまたはタグをプルする必要があります。

クリーンアップポリシー

GitLab 15.0 で必須ロールが開発者からメンテナーに変更されました。

GitLab 内からクリーンアップポリシーを有効にします。

GitLab 14.6 で導入されました

ユーザーインターフェイスから、依存プロキシの自動有効期限(TTL) ポリシーを有効にすることができます。これを行うには、グループの設定 > パッケージとレジストリ > 依存プロキシに移動し、90日後にキャッシュからアイテムを自動的にクリアする設定を有効にします。

GraphQL によるクリーンアップポリシーの有効化

GitLab 14.4で導入されました

クリーンアップポリシーは、使用されなくなったキャッシュイメージを消去し、ストレージの空き容量を増やすために使用できるスケジュールジョブです。ポリシーはtime-to-live(TTL) ロジックを使います:

  • 日数が設定されます。
  • その日数内にプルされなかったキャッシュ依存プロキシ・ファイルはすべて削除されます。

GraphQL APIを使用して、クリーンアップ ポリシーを有効化および設定します:

mutation {
  updateDependencyProxyImageTtlGroupPolicy(input:
    {
      groupPath: "<your-full-group-path>",
      enabled: true,
      ttl: 90
    }
  ) {
    dependencyProxyImageTtlPolicy {
      enabled
      ttl
    }
    errors
  }
}

GraphQL クエリの作成方法については、「Getting started with GraphQL」ガイドを参照してください。

ポリシーが最初に有効になると、デフォルトの TTL 設定は 90 日です。有効化されると、古い依存プロキシ ファイルは毎日削除のためにキューに入れられます。削除は処理時間の関係ですぐに行われない場合があります。キャッシュされたファイルが期限切れとマークされた後に画像がプルされた場合、期限切れファイルは無視され、新しいファイルが外部レジストリからダウンロードされてキャッシュされます。