Resolver problemas de imagem do contêiner

Saiba mais sobre as etapas de solução de problemas que podem ser úteis se você tiver problemas ao gerenciar imagens de contêiner no Artifact Registry.

Não é possível extrair uma imagem ou implantar em um ambiente de execução do Google Cloud .

Verifique se:

  1. Verifique se o caminho completo da imagem que você está enviando está correto. O caminho precisa incluir o nome do host do registro, o Google Cloud, o ID do projeto, o repositório e a imagem. Exemplo:
    us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
    Para mais informações, consulte Nomes de repositório e de imagem.
  2. Verifique se a conta que está extraindo a imagem tem as permissões corretas para ler do repositório. Se você tiver desativado a concessão automática de papéis a contas de serviço, conceda papéis do Artifact Registry às contas de serviço do ambiente de execução.
    • Para as contas de serviço do Compute Engine, do Cloud Run e do Google Kubernetes Engine, conceda o papel de leitor do Artifact Registry (roles/artifactregistry.reader) à conta de serviço do ambiente de execução.
    • Para a conta de serviço do Cloud Build, conceda o papel de Gravador do Artifact Registry (roles/artifactregistry.writer) à conta de serviço que executa builds.
    • Se você estiver usando o Docker ou outra ferramenta de terceiros, faça o seguinte:

Não é possível enviar uma imagem para o Artifact Registry

Tente o seguinte:

  1. Verifique se o repositório existe. Ao contrário do Container Registry, o repositório de criação é uma operação separada do envio da primeira imagem. Se ele não existir, crie um.
  2. Verifique se o caminho completo da imagem que você está enviando está correto. O caminho precisa incluir o nome do host do registro, o ID do projeto do Google Cloud , o repositório e a imagem. Exemplo:
    us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
      

    Cada repositório do Artifact Registry é um recurso separado. Portanto, não é possível enviar uma imagem para um caminho sem um repositório. Por exemplo, us-west1-docker.pkg.dev/my-project/my-image:v1 é um caminho de imagem inválido.

    Para mais informações, consulte Nomes de repositório e de imagem.

  3. Verifique se a conta que está enviando a imagem tem permissões para gravar no repositório. Se você tiver desativado a concessão automática de papéis para contas de serviço, conceda papéis do Artifact Registry às contas de serviço do ambiente de execução.
    • Para as contas de serviço do Compute Engine, Cloud Run e Google Kubernetes Engine, conceda o papel de escritor do Artifact Registry (roles/artifactregistry.writer) à conta de serviço do ambiente de execução.
    • Para a conta de serviço do Cloud Build, conceda o papel de Gravador do Artifact Registry (roles/artifactregistry.writer) à conta de serviço que executa builds.
  4. Se o Artifact Registry retornar a mensagem The repository has enabled tag immutability, a imutabilidade de tags será configurada para o repositório. Não é possível enviar uma imagem com uma tag que já foi usada para outra versão da mesma imagem no repositório. Tente enviar a imagem novamente com uma tag que não seja usada por outras versões armazenadas da imagem.

    Para verificar se um repositório está configurado para tags de imagem imutáveis, verifique a coluna Tags de imagem imutáveis na lista de repositórios no console do Google Cloud ou execute o seguinte comando:

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

Mensagens ImagePullBackOff e ErrImagePull

Mensagens com ImagePullBackOff e ErrImagePull indicam que uma imagem não pode ser extraída do registro pelo GKE.