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:
- 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:
Para mais informações, consulte Nomes de repositório e de imagem.us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
- 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:
- Conceda permissões à conta que interage com o repositório.
- Configure o cliente para autenticar no repositório.
Não é possível enviar uma imagem para o Artifact Registry
Tente o seguinte:
- 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.
- 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.
- 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. - 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.
- Verifique os requisitos para extrair do Artifact Registry.
- Revise as etapas de solução de problemas na documentação do GKE.