Résoudre les problèmes liés aux images de conteneurs

Découvrez les étapes de dépannage qui peuvent vous être utiles si vous rencontrez des problèmes lors de la gestion des images de conteneur dans Artifact Registry.

Impossible d'extraire une image ou de la déployer dans un environnement d'exécution Google Cloud

Vérifiez les éléments suivants :

  1. Vérifiez que le chemin d'accès complet de l'image que vous envoyez est correct. Le chemin d'accès doit inclure le nom d'hôte du registre, Google Cloud, l'ID du projet, le dépôt et l'image. Exemple :
    us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
    Pour en savoir plus, consultez la section Noms des dépôts et des images.
  2. Vérifiez que le compte qui extrait l'image dispose des autorisations appropriées pour lire le dépôt. Si vous avez désactivé l'attribution automatique de rôles aux comptes de service, vous devez attribuer des rôles Artifact Registry aux comptes de service d'exécution.
    • Pour les comptes de service Compute Engine, Cloud Run et Google Kubernetes Engine, vous devez attribuer le rôle Lecteur d'Artifact Registry (roles/artifactregistry.reader) au compte de service d'exécution.
    • Pour votre compte de service Cloud Build, vous devez accorder le rôle Rédacteur Artifact Registry (roles/artifactregistry.writer) au compte de service qui exécute les builds.
    • Si vous utilisez Docker ou un autre outil tiers, vous devez :

Impossible de transférer une image vers Artifact Registry

Essayez d'exécuter les commandes suivantes :

  1. Vérifiez que le dépôt existe. Contrairement à Container Registry, la création de dépôt est une opération distincte du transfert de la première image. Si le dépôt n'existe pas, créez-le.
  2. Vérifiez que le chemin d'accès complet de l'image que vous envoyez est correct. Le chemin d'accès doit inclure le nom d'hôte du registre, l'ID du projet, le dépôt et l'image. Google Cloud Exemple :
    us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
      

    Chaque dépôt Artifact Registry est une ressource distincte. Vous ne pouvez donc pas transférer une image vers un chemin d'accès sans dépôt. Par exemple, us-west1-docker.pkg.dev/my-project/my-image:v1 est un chemin d'accès à une image non valide.

    Pour en savoir plus, consultez la section Noms des dépôts et des images.

  3. Vérifiez que le compte qui transfère l'image dispose des autorisations nécessaires pour écrire dans le dépôt. Si vous avez désactivé l'attribution automatique de rôles aux comptes de service, vous devez attribuer des rôles Artifact Registry aux comptes de service d'exécution.
    • Pour les comptes de service Compute Engine, Cloud Run et Google Kubernetes Engine, vous devez accorder le rôle "Écrivain Artifact Registry" (roles/artifactregistry.writer) au compte de service d'exécution.
    • Pour votre compte de service Cloud Build, vous devez accorder le rôle Rédacteur Artifact Registry (roles/artifactregistry.writer) au compte de service qui exécute les builds.
  4. Si Artifact Registry a renvoyé le message The repository has enabled tag immutability, l'immuabilité des tags est configurée pour le dépôt. Vous ne pouvez pas transférer une image avec un tag déjà utilisé pour une autre version de la même image dans le dépôt. Essayez de transférer à nouveau l'image avec un tag qui n'est pas utilisé par d'autres versions stockées de l'image.

    Pour vérifier qu'un dépôt est configuré pour les balises d'image immuables, vérifiez la colonne Balises d'image immuables dans la liste des dépôts de la console Google Cloud ou exécutez la commande suivante:

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

Messages ImagePullBackOff et ErrImagePull

Les messages avec ImagePullBackOff et ErrImagePull indiquent qu'une image ne peut pas être extraite du registre par GKE.