Saiba mais sobre os passos de resolução de problemas que podem ser úteis se tiver problemas com a gestão de imagens de contentores no Artifact Registry.
Não é possível extrair uma imagem ou implementar num Google Cloud ambiente de tempo de execução
Verifique o seguinte:
- Verifique se o caminho completo da imagem que está a enviar é correto. O caminho tem de incluir o nome de anfitrião do registo, Google Cloud,
o ID do projeto, o repositório e a imagem. Por exemplo:
Para mais informações, consulte o artigo Nomes de repositórios e imagens.us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
- Verifique se a conta que está a extrair a imagem tem as autorizações corretas para ler a partir do repositório. Se tiver desativado a concessão automática de funções a contas de serviço, tem de conceder funções do Artifact Registry às contas de serviço de tempo de execução.
- Para as contas de serviço do Compute Engine, do Cloud Run e do Google Kubernetes Engine,
tem de conceder a função Leitor do Artifact Registry
(
roles/artifactregistry.reader
) à conta de serviço de tempo de execução. - Para a sua conta de serviço do Cloud Build, tem de conceder a função de
escritor do Artifact Registry (
roles/artifactregistry.writer
) à conta de serviço que executa compilações. - Se estiver a usar o Docker ou outra ferramenta de terceiros, tem de:
- Conceder autorizações à conta que interage com o repositório.
- Configure o cliente para fazer a autenticação no repositório.
Não é possível enviar uma imagem para o Artifact Registry
Experimente o seguinte:
- 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, então crie-o.
- Verifique se o caminho completo da imagem que está a enviar é correto. O caminho tem de incluir o nome do anfitrião do registo, o ID do projeto, o repositório e a imagem. Google Cloud Por exemplo:
us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
Cada repositório do Artifact Registry é um recurso separado, pelo que não pode 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 o artigo Nomes de repositórios e imagens.
- Verifique se a conta que está a enviar a imagem tem autorizações para escrever no repositório. Se tiver desativado a concessão automática de funções a contas de serviço, tem de conceder funções do Artifact Registry às contas de serviço de tempo de execução.
- Para as contas de serviço do Compute Engine, Cloud Run e Google Kubernetes Engine,
tem de conceder a função de escritor do Artifact Registry
(
roles/artifactregistry.writer
) à conta de serviço de tempo de execução. - Para a sua conta de serviço do Cloud Build, tem de conceder a função de
escritor do Artifact Registry (
roles/artifactregistry.writer
) à conta de serviço que executa compilações. - Se o Artifact Registry devolveu a mensagem
The repository has enabled tag immutability
, significa que a imutabilidade das etiquetas está configurada para o repositório. Não pode enviar uma imagem com uma etiqueta que já seja usada para outra versão da mesma imagem no repositório. Tente enviar a imagem novamente com uma etiqueta que não seja usada por outras versões armazenadas da imagem.Para verificar se um repositório está configurado para etiquetas de imagens imutáveis, consulte a coluna Etiquetas de imagens imutáveis na lista de repositórios na Google Cloud consola 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 o GKE não consegue obter uma imagem do registo.
- Valide os requisitos para extrair do Artifact Registry.
- Reveja o artigo Resolva problemas de obtenção de imagens na documentação do GKE.