Nomes de repositório e imagem

O Artifact Registry usa uma convenção de nomenclatura para identificar repositórios e imagens ao usar os comandos de API, gcloud e docker para interagir com os repositórios.

Repositórios do Docker

O nome completo de um repositório do Docker está no seguinte formato:

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY

onde:

  • LOCATION é o local ou multirregional local do repositório.

  • PROJECT é o ID do projeto do console do Google Cloud. Caso o ID do projeto contenha dois pontos (`:`), consulte Projetos com escopo de domínio.

  • REPOSITORY é o nome do repositório.

Por exemplo, considere uma imagem com as seguintes características:

  • Local do repositório: us-west1
  • Formato do repositório: docker
  • Nome do repositório: my-repo
  • ID do projeto: my-project

O repositório é especificado como:

us-west1-docker.pkg.dev/my-project/my-repo

Nomes de imagens de contêiner

O nome completo de uma imagem de contêiner tem um dos seguintes formatos:

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE

ou

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE:TAG

ou

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE@IMAGE-DIGEST

onde:

  • LOCATION é o local ou multirregional local do repositório.
  • PROJECT é o ID do projeto do console do Google Cloud. Caso o ID do projeto contenha dois pontos (`:`), consulte Projetos com escopo de domínio.
  • REPOSITORY é o nome do repositório em que a imagem está armazenada.
  • IMAGE é o nome da imagem no repositório.
  • TAG é a tag da versão de imagem que você quer extrair.
  • IMAGE-DIGEST é o valor de hash sha256 do conteúdo da imagem. No console do Google Cloud, clique na imagem específica para conferir os metadados. O resumo é listado como Resumo da imagem.

    Se você não especificar uma tag ou um resumo, o Artifact Registry procurará a imagem com a tag padrão latest. Consulte Versões de imagem de contêiner para mais informações sobre versões.

Por exemplo, considere uma imagem com as seguintes características:

  • Local do repositório: us-west1
  • Nome do repositório: my-repo
  • ID do projeto: my-project
  • Nome da imagem: test
  • Tag: staging

Essa versão da imagem marcada com preparação é especificada como:

us-west1-docker.pkg.dev/my-project/my-repo/test:staging

Versões de imagem de contêiner

Um repositório pode conter muitas imagens de contêiner, e essas imagens podem ter versões diferentes. Para identificar uma versão específica de uma imagem, defina o resumo ou a tag da imagem.

Resumo
Um resumo de imagem é um hash gerado automaticamente do índice ou do manifesto da imagem. Cada resumo de imagem é um identificador exclusivo de uma versão de imagem e não pode ser alterado. O resumo é o valor de hash sha256 do conteúdo da imagem.
Tag

Uma tag de imagem é um rótulo e geralmente é uma string legível, como v1.1 ou development. Uma tag só pode apontar para uma versão da imagem. No Artifact Registry, é possível configurar um repositório do Docker para permitir tags de imagem mutáveis ou aplicar tags de imagem imutáveis.

  • Mutável: uma tag aponta para apenas uma versão de uma imagem, mas o resumo específico a que ela faz referência pode mudar.

    Uma abordagem comum é marcar imagens com um identificador de versão, como v1.1, no tempo de build. Quando o build envia várias versões da imagem para o registro com a mesma tag v1.1, a tag faz referência ao resumo da última versão enviada ao registro. Embora as tags de imagem mutáveis ofereçam uma maneira conveniente de rotular versões, elas também podem ser manipuladas por um usuário de má-fé para associar uma tag a uma versão maliciosa de uma imagem.

  • Imutável: no repositório, uma tag sempre aponta para o mesmo resumo da imagem. Se um repositório do Artifact Registry estiver configurado para tags de imagem imutáveis, as seguintes ações não serão permitidas:

    • Exclui uma imagem marcada. Ainda é permitido excluir imagens sem tag.
    • Remova uma tag de uma imagem.
    • Envie uma imagem com uma tag que já esteja sendo usada por outra versão da imagem no repositório.

Por exemplo, considere uma imagem com as seguintes características:

  • Local do repositório: us-west1
  • Nome do repositório: my-repo
  • ID do projeto: my-project
  • Nome da imagem: test
  • Tag: staging
  • Resumo: sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d

Para identificar a imagem com a tag, anexe :staging ao nome da imagem:

us-west1-docker.pkg.dev/my-project/my-repo/test:staging

Para identificá-la com o resumo, anexe @ ao nome da imagem, seguido pelo resumo:

us-west1-docker.pkg.dev/my-project/my-repo/test@sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d

Caso o ID do projeto contenha dois pontos (`:`), consulte Projetos com escopo de domínio.

No console, na tela Imagens, a coluna Tags lista as tags da imagem. Clique na versão da imagem para ver os metadados, incluindo o Resumo da imagem.

Consulte Como incluir tags em imagens para mais informações sobre inclusão de tags.

Projetos de escopo de domínio

Se seu projeto estiver no escopo de seu domínio, o ID do projeto incluirá o nome do domínio seguido por dois pontos (:). Por causa de como o Docker trata dois pontos, você deve substituir o caractere de dois pontos por uma barra quando especificar um resumo de imagem no Artifact Registry. Identifique imagens nesses tipos de projetos usando o seguinte formato:

LOCATION-docker.pkg.dev/DOMAIN/PROJECT-ID/REPOSITORY/IMAGE@IMAGE-DIGEST

Por exemplo, o projeto com o ID example.com:my-project poderia ter a seguinte imagem:

us-west1-docker.pkg.dev/example.com/my-project/my-repo/image-name

Nomes de repositório como URLs

Para acessar um repositório ou artefato em um repositório no console do Google Cloud, coloque https:// no nome completo.

Por exemplo, para visualizar o repositório us-west1-maven.pkg.dev/my-project/my-repo, use o seguinte URL:

https://us-west1-maven.pkg.dev/my-project/my-repo

Para visualizar a imagem us-west1-docker.pkg.dev/example.com/my-project/my-repo/my-image, use o seguinte URL:

https://us-west1-docker.pkg.dev/example.com/my-project/my-repo/my-image

Qualquer usuário autenticado que tenha permissão para acessar o repositório pode usar esses links.