Hier finden Sie nützliche Informationen über die schrittweise Fehlerbehebung bei Problemen mit der Verwaltung von Container-Images in Artifact Registry.
Syntax der Projekt-ID in der Docker CLI
Da Docker Doppelpunkte anders behandelt, müssen Sie in der Docker CLI
Doppelpunkte (:) in Ihrer Projekt-ID durch einen Schrägstrich (/) ersetzen.
Weitere Informationen finden Sie unter Auf Domains beschränkte Projekte.
Image kann nicht abgerufen oder in einer Google Cloud Laufzeitumgebung bereitgestellt werden
Prüfen Sie Folgendes:
- Prüfen Sie, ob der vollständige Pfad des Images, das Sie per Push übertragen, korrekt ist. Der Pfad muss den Hostnamen der Registry, Google Cloud,
die Projekt-ID, das Repository und das Image enthalten. Beispiel:
Weitere Informationen finden Sie unter Repository- und Image-Namen.us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1 - Prüfen Sie, ob das Konto, mit dem das Image abgerufen wird, die richtigen Berechtigungen zum Lesen aus dem Repository hat. Wenn Sie die automatische Rollenzuweisung für Dienstkonten deaktiviert haben, müssen Sie den Laufzeitdienst konten Artifact Registry-Rollen zuweisen.
- Für Compute Engine-, Cloud Run- und Google Kubernetes Engine-Dienstkonten
müssen Sie dem Laufzeitdienstkonto die Rolle Artifact Registry-Leser
(
roles/artifactregistry.reader) zuweisen. - Für Ihr Cloud Build-Dienstkonto müssen Sie dem
Dienstkonto, mit dem Builds ausgeführt werden, die
Rolle Artifact Registry-Autor (
roles/artifactregistry.writer) zuweisen. - Wenn Sie Docker oder ein anderes Drittanbietertool verwenden, müssen Sie Folgendes tun:
- Berechtigungen gewähren für das Konto, das mit dem Repository interagiert.
- Den Client so konfigurieren, dass er sich beim Repository authentifiziert.
Image kann nicht per Push in Artifact Registry übertragen werden
Geben Sie Folgendes ein:
- Prüfen Sie, ob das Repository vorhanden ist. Im Gegensatz zu Container Registry, Repository-Erstellung ist ein separater Vorgang vom Übertragen des ersten Images. Wenn das Repository nicht vorhanden ist, dann erstellen Sie es.
- Prüfen Sie, ob der vollständige Pfad des Images, das Sie per Push übertragen, korrekt ist. Der
Pfad muss den Hostnamen der Registry, Google Cloud die Projekt-ID,
das Repository und das Image enthalten. Beispiel:
us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1Jedes Artifact Registry-Repository ist eine separate Ressource. Sie können also kein Image per Push an einen Pfad ohne Repository übertragen. For example,
us-west1-docker.pkg.dev/my-project/my-image:v1ist ein ungültiger Image-Pfad.Weitere Informationen finden Sie unter Repository- und Image-Namen.
- Prüfen Sie, ob das Konto, mit dem das Image per Push übertragen wird, Berechtigungen zum Schreiben in das Repository hat. Wenn Sie die automatische Rollenzuweisung für Dienstkonten deaktiviert haben, müssen Sie den Laufzeitdienst konten Artifact Registry-Rollen zuweisen.
- Für Compute Engine-, Cloud Run- und Google Kubernetes Engine-Dienstkonten
müssen Sie dem Laufzeit
dienstkonto die Rolle Artifact Registry-Autor
(
roles/artifactregistry.writer) zuweisen. - Für Ihr Cloud Build-Dienstkonto müssen Sie dem Dienstkonto, mit dem Builds ausgeführt werden, die
Rolle Artifact Registry-Autor (
roles/artifactregistry.writer) zuweisen. - Wenn Artifact Registry die Meldung
The repository has enabled tag immutabilityzurückgegeben hat, ist die Tag-Unveränderlichkeit für das Repository konfiguriert. Sie können kein Image mit einem Tag per Push übertragen, das bereits für eine andere Version desselben Images im Repository verwendet wird. Versuchen Sie, das Image noch einmal mit einem Tag per Push zu übertragen, das nicht von anderen gespeicherten Versionen des Images verwendet wird.Um zu prüfen, ob ein Repository für unveränderliche Image-Tags konfiguriert ist, sehen Sie in der Liste der Repositories in Google Cloud der Console in der Spalte Unveränderliche Image-Tags nach oder führen Sie den folgenden Befehl aus:
gcloud artifacts repositories describe REPOSITORY \ --project=PROJECT-ID \ --location=LOCATION
Meldungen „ImagePullBackOff“ und „ErrImagePull“
Meldungen mit ImagePullBackOff und ErrImagePull weisen darauf hin, dass ein Image nicht von GKE aus der Registry abgerufen werden kann.
- Prüfen Sie die Anforderungen für das Abrufen aus Artifact Registry.
- Weitere Informationen finden Sie unter Fehlerbehebung beim Abrufen von Images in der GKE-Dokumentation.