アーティファクト キャッシュのトラブルシューティング ガイド

このチュートリアルでは、アーティファクト キャッシュ機能を有効にしたレジストリに関する最も一般的な問題を、この機能を効果的に使用するために症状、原因、潜在的な解決策を特定することでトラブルシューティングします。

症状と原因

次のうちのいずれかまたは複数が該当する可能性があります。

対処法

キャッシュされたイメージがライブ リポジトリに表示されない

キャッシュされたイメージが Azure Container Registry (ACR) のリポジトリに表示されない問題が発生している場合は、リポジトリ パスを確認することをお勧めします。 リポジトリ パスが正しくない場合、キャッシュされたイメージが ACR のリポジトリに表示されません。

  • Docker Hub のログイン サーバーは docker.io です。
  • Microsoft アーティファクト レジストリのログイン サーバーは mcr.microsoft.com です。

Azure portal では、これらのフィールドが自動入力されます。 ただし、多くの Docker リポジトリは、パスが library/ で始まります。 たとえば、hello-world リポジトリをキャッシュするための正しいリポジトリ パスは docker.io/library/hello-world です。

異常な資格情報

資格情報は、プライベート リポジトリのユーザー名とパスワードとして動作する Key Vault シークレットのセットです。 異常な資格情報は、多くの場合、これらのシークレットが無効になった結果です。 Azure portal で資格情報を選択し、編集して変更を適用できます。

  • Azure Key Vault 内のシークレットが期限切れであることを確認します。
  • Azure Key Vault 内のシークレットが有効であることを確認します。
  • Azure Key Vault へのアクセス権が割り当てられていることを確認します。

Azure Key Vault へのアクセス権を割り当てるには:

az keyvault set-policy --name myKeyVaultName --object-id myObjID --secret-permissions get

Key Vault について詳細をご確認ください。 Azure Key Vault へのアクセス権の割り当てについて詳細をご確認ください。

キャッシュ ルールを作成できない

キャッシュ ルールの制限

キャッシュ ルールの作成中に問題が発生した場合は、1,000 個を超えるキャッシュ ルールが作成されていないか確認することをお勧めします。

制限に達しないように、不要なキャッシュ ルールを削除することをお勧めします。

キャッシュの用語について詳細をご確認ください。

ワイルドカードを使用してキャッシュ ルールを作成できない

キャッシュ ルールを作成しようとしているが、既存のルールと競合している場合。 このエラー メッセージは、指定されたターゲット リポジトリには、ワイルドカードを含むキャッシュ ルールが既に存在することを示しています。

この問題を解決するには、次の手順に従う必要があります。

  1. 競合の原因となっている既存のキャッシュ ルールを特定します。 ターゲット リポジトリにワイルドカード (*) を使用する既存のルールを探します。

  2. ソース リポジトリとワイルドカードが重複し、競合しているキャッシュ ルールを削除します。

  3. 目的のワイルドカードとターゲット リポジトリで新しいキャッシュ ルールを作成します。

  4. 新しいルールが正しく適用され、競合するルールが他にないよう、キャッシュ構成を再確認します。

アップストリームのサポート

アーティファクト キャッシュが現在サポートしているアップストリーム レジストリは以下のとおりです。

警告

お客様は、Docker Hub からコンテンツを取得するために資格情報セットを生成する必要があります。

アップストリーム レジストリ サポート 可用性
Docker Hub 認証されているプルのみがサポートされます。 Azure CLI、Azure portal
Microsoft アーティファクト レジストリ 認証されていないプルのみがサポートされます。 Azure CLI、Azure portal
AWS Elastic Container Registry (ECR) パブリック ギャラリー 認証されていないプルのみがサポートされます。 Azure CLI、Azure portal
GitHub Container Registry 認証されたプルと認証されていないプルの両方がサポートされます。 Azure CLI、Azure portal
Quay 認証されたプルと認証されていないプルの両方がサポートされます。 Azure CLI、Azure portal
registry.k8s.io 認証されたプルと認証されていないプルの両方がサポートされます。 Azure CLI
Google Container Registry 認証されたプルと認証されていないプルの両方がサポートされます。 Azure CLI