Soluciona problemas con las imágenes de contenedor

Obtén información sobre pasos para solucionar problemas que pueden resultarte útiles si tienes problemas para administrar imágenes de contenedor en Artifact Registry.

No se puede extraer una imagen ni implementarla en un entorno de ejecución de Google Cloud

Verifica lo siguiente:

  1. Verifica que la ruta completa de la imagen que envías sea correcta. El incluyen el nombre de host del registro, el ID del proyecto de Google Cloud, el repositorio, y una imagen. Por ejemplo:

    us-east1-docker.pkg.dev/my-project/my-repo/my-image:v1
    

    Para obtener más información, consulta Nombres de imágenes y repositorios.

  2. Verifica que la cuenta que extrae la imagen tenga permisos para leer desde el repositorio.

    • La cuenta de servicio predeterminada de Cloud Build tiene permisos de lectura y escritura a los repositorios en el mismo proyecto de Google Cloud. Si utilizas un proporcionada por el usuario, o enviar y extraer imágenes proyectos, otorga el rol de escritor de Artifact Registry al servicio cuenta de servicio que ejecuta compilaciones.
    • De forma predeterminada, Compute Engine, Cloud Run y Google Kubernetes Engine leyeron permisos para los repositorios del mismo proyecto. Si se trata de Artifact Registry se encuentra en un proyecto diferente del entorno de ejecución, debes otorgar Rol de lector de Artifact Registry en la cuenta de servicio del entorno de ejecución
    • Si usas Docker o alguna otra herramienta de terceros, debes hacer lo siguiente:

No se puede enviar una imagen a Artifact Registry

Verifica lo siguiente:

  1. Verifica que el repositorio exista. A diferencia de Container Registry, las bibliotecas es una operación independiente de enviar la primera imagen. Si el botón no existe, créalo.

  2. Verifica que la ruta completa de la imagen que envías sea correcta. El incluyen el nombre de host del registro, el ID del proyecto de Google Cloud, el repositorio, y una imagen. Por ejemplo:

    us-east1-docker.pkg.dev/my-project/my-repo/my-image:v1
    

    Cada repositorio de Artifact Registry es un recurso independiente, por lo que no puedes enviar una imagen a una ruta sin repositorio. Por ejemplo: us-east1-docker.pkg.dev/my-project/my-image:v1 es una ruta de acceso de imagen no válida.

    Para obtener más información, consulta Nombres de imágenes y repositorios.

  3. Verifica que la cuenta que envía la imagen tenga permisos para escribir en el repositorio.

    • La cuenta de servicio predeterminada de Cloud Build tiene permisos de lectura y escritura a los repositorios en el mismo proyecto de Google Cloud. Si utilizas un proporcionada por el usuario, o enviar y extraer imágenes proyectos, otorga el rol de escritor de Artifact Registry al servicio cuenta de servicio que ejecuta compilaciones.
    • De forma predeterminada, Compute Engine, Cloud Run y Google Kubernetes Engine leyeron permisos para los repositorios del mismo proyecto. Si utilizas un de terceros en estos entornos para enviar imágenes, otorgar el rol de escritor de Artifact Registry a la cuenta de servicio del entorno de ejecución.
  4. Si Artifact Registry mostró el mensaje The repository has enabled tag immutability, la inmutabilidad de etiquetas está configurada para el repositorio. No puedes enviar una imagen con una etiqueta que ya se use para otra versión de la misma imagen en el repositorio. Intenta enviar la imagen nuevamente con una etiqueta que no usen otras versiones almacenadas de la imagen.

    Si quieres verificar que un repositorio esté configurado para etiquetas de imagen inmutables, revisa el La columna Etiquetas de imagen inmutables de la lista de repositorios del Consola de Google Cloud o ejecuta el siguiente comando:

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

Mensajes de ImagePullBackOff y ErrImagePull

Los mensajes con ImagePullBackOff y ErrImagePull indican que GKE no puede extraer una imagen del registro.