Risolvere i problemi relativi alle immagini container

Scopri i passaggi per la risoluzione dei problemi, utili in caso di problemi nella gestione delle immagini container in Artifact Registry.

Sintassi dell'ID progetto nell'interfaccia a riga di comando Docker

A causa del modo in cui Docker tratta i due punti, quando utilizzi l'interfaccia a riga di comando Docker, devi sostituire i due punti (:) nell'ID progetto con una barra (/). Per ulteriori informazioni, vedi Progetti con ambito di dominio.

Impossibile eseguire il pull di un'immagine o il deployment in un ambiente Google Cloud runtime

Verifica quanto segue:

  1. Verifica che il percorso completo dell'immagine di cui stai eseguendo il push sia corretto. Il percorso deve includere il nome host del registro, Google Cloud, ID progetto, repository e immagine. Ad esempio:
    us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
    Per ulteriori informazioni, vedi Nomi di repository e immagini.
  2. Verifica che l'account che esegue il pull dell'immagine disponga delle autorizzazioni corrette per la lettura dal repository. Se hai disattivato la concessione automatica dei ruoli ai service account, devi concedere i ruoli di Artifact Registry ai service account di runtime.

Impossibile eseguire il push di un'immagine in Artifact Registry

Prova a procedere come segue:

  1. Verifica che il repository esista. A differenza di Container Registry, la creazione del repository è un'operazione separata dal push della prima immagine. Se il repository non esiste, allora crealo.
  2. Verifica che il percorso completo dell'immagine di cui stai eseguendo il push sia corretto. Il percorso deve includere il nome host del registro, Google Cloud l'ID progetto, repository e l'immagine. Ad esempio:
    us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
      

    Ogni repository Artifact Registry è una risorsa separata, quindi non puoi eseguire il push di un'immagine in un percorso senza un repository. Ad esempio, us-west1-docker.pkg.dev/my-project/my-image:v1 è un percorso immagine non valido.

    Per ulteriori informazioni, vedi Nomi di repository e immagini.

  3. Verifica che l'account che esegue il push dell'immagine disponga delle autorizzazioni per la scrittura nel repository. Se hai disattivato la concessione automatica dei ruoli ai service account, devi concedere i ruoli di Artifact Registry ai service account di runtime.
    • Per i service account di Compute Engine, Cloud Run e Google Kubernetes Engine, devi concedere il ruolo Writer Artifact Registry (roles/artifactregistry.writer) al account di servizio di runtime.
    • Per il account di servizio Cloud Build, devi concedere il ruolo Writer Artifact Registry (roles/artifactregistry.writer) al account di servizio che esegue le build.
  4. Se Artifact Registry ha restituito il messaggio The repository has enabled tag immutability, significa che l'immutabilità dei tag è configurata per il repository. Non puoi eseguire il push di un'immagine con un tag già utilizzato per un'altra versione della stessa immagine nel repository. Prova a eseguire di nuovo il push dell'immagine con un tag non utilizzato da altre versioni archiviate dell'immagine.

    Per verificare che un repository sia configurato per i tag immagine immutabili, controlla la colonna Tag immagine immutabili nell'elenco dei repository nella Google Cloud console o esegui il seguente comando:

    gcloud artifacts repositories describe REPOSITORY \
          --project=PROJECT-ID \
          --location=LOCATION
      

Messaggi ImagePullBackOff ed ErrImagePull

I messaggi con ImagePullBackOff ed ErrImagePull indicano che GKE non può eseguire il pull di un'immagine dal registro.