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:
- 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:
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ê 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 Leitor do Artifact Registry
(
roles/artifactregistry.reader) à 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. - Se você estiver usando o Docker ou outra ferramenta de terceiros, faça o seguinte:
- Conceda permissões a a 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, 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.
- 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:v1Cada 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.
- 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. - 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.
- Verifique os requisitos para extrair do Artifact Registry.
- Consulte Solução de problemas de extração de imagens na documentação do GKE.