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 ID do projeto do Google Cloud, o repositório e a imagem. Exemplo:
us-east1-docker.pkg.dev/my-project/my-repo/my-image:v1
Para mais informações, consulte Nomes de repositórios e imagens.
Verifique se a conta que está extraindo a imagem tem permissões para ler no repositório.
- A conta de serviço padrão do Cloud Build tem permissões de leitura e gravação para repositórios no mesmo projeto do Google Cloud. Se você estiver usando uma conta de serviço fornecida pelo usuário ou enviando e extraindo imagens entre projetos, conceda o papel Gravador do Artifact Registry à conta de serviço que executa as versões.
- Por padrão, o Compute Engine, o Cloud Run e o Google Kubernetes Engine têm permissões de leitura para repositórios no mesmo projeto. Se o Artifact Registry estiver em um projeto diferente do ambiente de execução, você precisará conceder o papel de leitor do Artifact Registry à conta de serviço de ambiente de execução.
Se você estiver usando o Docker ou outra ferramenta de terceiros, será preciso:
- 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
Verifique se:
Verifique se o repositório existe. Ao contrário do Container Registry, a criação do repositório é uma operação separada do envio da primeira imagem. Se o repositório não existir, crie-o.
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-east1-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-east1-docker.pkg.dev/my-project/my-image:v1
é um caminho de imagem inválido.Para mais informações, consulte Nomes de repositórios e imagens.
Verifique se a conta que está enviando a imagem tem permissões para gravar no repositório.
- A conta de serviço padrão do Cloud Build tem permissões de leitura e gravação para repositórios no mesmo projeto do Google Cloud. Se você estiver usando uma conta de serviço fornecida pelo usuário ou enviando e extraindo imagens entre projetos, conceda o papel Gravador do Artifact Registry à conta de serviço que executa as versões.
- Por padrão, o Compute Engine, o Cloud Run e o Google Kubernetes Engine têm permissões de leitura para repositórios no mesmo projeto. Se você estiver usando uma ferramenta de terceiros nesses ambientes para enviar imagens, será necessário conceder o papel de Gravador do Artifact Registry à conta de serviço de ambiente de execução.
Se o Artifact Registry retornar a mensagem
The repository has enabled tag immutability
, a imutabilidade da tag será configurada para o repositório. Não é possível enviar uma imagem com uma tag que já esteja sendo 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 o 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 de 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.
- Analise as etapas de solução de problemas na documentação do GKE.