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.

Sintaxe do ID do projeto na CLI do Docker

Devido à forma como o Docker trata os dois pontos, ao usar a CLI do Docker, é necessário substituir os dois pontos (:) no ID do projeto por uma barra (/). Para mais informações, consulte Projetos com escopo de domínio.

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

Verifique se:

  1. O caminho completo da imagem que você está enviando está correto. O caminho precisa incluir o nome do host do registro, 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ê desativou a concessão automática de papéis para contas de serviço, conceda papéis do Artifact Registry às contas de serviço de execução.

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, a criação de repositórios é uma operação separada do envio da primeira imagem. Se o repositório não existir, então crie o.
  2. O caminho completo da imagem que você está enviando está correto. O caminho precisa incluir o nome do host do registro, 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
      

    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. A conta que está enviando a imagem tem permissões para gravar no repositório. Se você desativou a concessão automática de papéis para contas de serviço, conceda papéis do Artifact Registry às contas de serviço de execução.
    • Para contas de serviço do Compute Engine, do Cloud Run e do Google Kubernetes Engine, conceda o papel de Gravador do Artifact Registry (roles/artifactregistry.writer) à conta de serviço 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 retornou a mensagem The repository has enabled tag immutability, a imutabilidade da tag está configurada para o repositório. Não é possível enviar uma imagem com uma tag que já é 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, confira a coluna Tags de imagem imutáveis na lista de repositórios no Google Cloud console ou execute o seguinte comando:

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

Mensagens ImagePullBackOff e ErrImagePull

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