Noms des dépôts et des images

Artifact Registry utilise une convention d'attribution de noms pour identifier les dépôts et les images lorsque vous utilisez l'API, ainsi que les commandes gcloud et docker pour interagir avec les dépôts.

Dépôts Docker

Le nom complet d'un dépôt Docker est au format suivant :

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

où :

  • LOCATION est l'emplacement régional ou multirégional du dépôt.

  • PROJECT est l'ID du projet dans la console Google Cloud. Si l'ID de votre projet contient le signe deux-points (:) et que vous utilisez un dépôt Docker, consultez la section Projets à l'échelle du domaine.

  • REPOSITORY est le nom du dépôt.

Prenons l'exemple d'une image présentant les caractéristiques suivantes :

  • Emplacement du dépôt : us
  • Format du dépôt : docker
  • Nom du dépôt : my-repo
  • ID du projet : my-project

Le dépôt est spécifié comme suit :

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

Noms d'images de conteneurs

Le nom complet d'une image de conteneur est l'un des formats suivants:

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

où :

  • LOCATION est l'emplacement régional ou multirégional du dépôt.
  • PROJECT est l'ID du projet dans la console Google Cloud. Si l'ID du projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.
  • REPOSITORY est le nom du dépôt où l'image est stockée.
  • IMAGE est le nom de l'image dans le dépôt.
  • TAG est le tag de la version de l'image que vous souhaitez extraire.
  • IMAGE-DIGEST est la valeur de hachage sha256 du contenu de l'image. Dans la console Google Cloud, cliquez sur une image spécifique pour afficher ses métadonnées. Le condensé y apparaît sous l'intitulé Condensé de l'image.

    Si vous ne spécifiez pas de tag ni de condensé, Artifact Registry recherche l'image avec le tag par défaut latest. Pour en savoir plus sur les versions, consultez la page Versions des images de conteneurs.

Prenons l'exemple d'une image présentant les caractéristiques suivantes :

  • Emplacement du dépôt : us
  • Nom du dépôt : my-repo
  • ID du projet : my-project
  • Nom de l'image : test
  • Tag : staging

Cette version de l'image comportant le tag de préproduction est spécifiée comme suit :

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

Versions d'images de conteneurs

Un dépôt peut contenir de nombreuses images de conteneurs, et ces images peuvent avoir différentes versions. Pour identifier une version spécifique d'une image, vous pouvez spécifier le condensé ou le tag de l'image.

Récapitulatif
Un condensé d'image est un hachage généré automatiquement de l'index d'image ou du fichier manifeste d'image. Chaque condensé d'image est un identifiant unique pour une version d'image et ne peut pas être modifié. Le condensé correspond à la valeur de hachage sha256 du contenu de l'image.
Tag

Une balise d'image est une étiquette. Il s'agit souvent d'une chaîne lisible telle que v1.1 ou development. Un tag ne peut renvoyer que vers une seule version d'une image. Dans Artifact Registry, vous pouvez configurer un dépôt Docker pour autoriser les tags d'image modifiables ou appliquer des tags d'image immuables (Preview).

  • Mutable: un tag pointe vers une seule version d'une image, mais le condensé spécifique auquel elle fait référence peut changer.

    Une approche courante consiste à ajouter aux images un identifiant de version, tel que v1.1, au moment de la compilation. Lorsque la compilation transfère plusieurs versions de l'image au registre avec le même tag v1.1, la balise fait référence au condensé de la dernière version transférée vers le registre. Bien que les tags d'image modifiables constituent un moyen pratique d'étiqueter les versions, ils peuvent également être manipulés par un acteur malintentionné pour associer un tag à une version malveillante d'une image.

  • Immuable: dans le dépôt, un tag pointe toujours vers le même condensé d'image. Si un dépôt Artifact Registry est configuré pour des tags d'image immuables, les actions suivantes ne sont pas autorisées:

    • Supprimer une image taguée. La suppression d'images sans tag est toujours autorisée.
    • Supprimez un tag d'une image.
    • Transférez une image avec un tag déjà utilisé par une autre version de l'image dans le dépôt.

Prenons l'exemple d'une image présentant les caractéristiques suivantes :

  • Emplacement du dépôt : us
  • Nom du dépôt : my-repo
  • ID du projet : my-project
  • Nom de l'image : test
  • Tag : staging
  • Condensé : sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d

Pour identifier l'image avec le tag, ajoutez :staging au nom de l'image:

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

Pour l'identifier à l'aide du condensé, ajoutez @ au nom de l'image, suivi du condensé:

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

Si l'ID du projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.

Dans la console, sur l'écran Images, la colonne Tags répertorie les tags de l'image. Cliquez sur la version de l'image pour afficher les métadonnées, y compris le Condensé de l'image.

Pour en savoir plus sur l'ajout de tags, consultez la section Ajouter des tags à des images.

Projets à l'échelle du domaine

Si votre projet est à l'échelle de votre domaine, l'ID de projet comprend le nom du domaine suivi par le signe deux-points (:). En raison de la façon dont Docker traite les deux points, vous devez remplacer ce caractère par une barre oblique lorsque vous spécifiez un condensé d'image dans Artifact Registry. Identifiez les images dans ces types de projets en utilisant le format suivant :

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

Par exemple, le projet portant l'ID example.com:my-project pourrait avoir l'image suivante :

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

Noms des dépôts sous forme d'URL

Pour accéder à un dépôt ou à un artefact d'un dépôt dans la console Google Cloud, ajoutez https:// à son nom complet.

Par exemple, pour afficher le dépôt us-maven.pkg.dev/my-project/my-repo, utilisez l'URL suivante:

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

Pour afficher l'image us-docker.pkg.dev/example.com/my-project/my-repo/my-image, utilisez l'URL suivante:

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

Tout utilisateur authentifié qui est autorisé à accéder au dépôt peut utiliser ces liens.