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 un signe deux-points (:
), 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-west1
- 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-west1-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 de votre projet contient un 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 voir 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éfautlatest
. Pour en savoir plus sur les versions, consultez la section Versions d'images de conteneur.
Prenons l'exemple d'une image présentant les caractéristiques suivantes :
- Emplacement du dépôt :
us-west1
- 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-west1-docker.pkg.dev/my-project/my-repo/test:staging
Versions d'images de conteneurs
Un dépôt peut contenir plusieurs images de conteneur, 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 de l'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 un libellé, souvent une chaîne lisible par l'humain, comme
v1.1
oudevelopment
. Un tag ne peut pointer 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.Modifiable: un tag ne pointe que vers une seule version d'une image, mais le condensé spécifique qu'il référence peut changer.
Une approche courante consiste à ajouter des tags aux images avec un identifiant de version, tel que
v1.1
, au moment de la compilation. Lorsque le build transfère plusieurs versions de l'image vers le référentiel avec la même balisev1.1
, la balise fait référence au condensé de la dernière version transférée vers le référentiel. Bien que les tags d'image modifiables permettent d'étiqueter facilement les versions, ils peuvent également être manipulés par un pirate informatique 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 les tags d'image immuables, les actions suivantes ne sont pas autorisées:
- Supprimez une image taguée. La suppression des images non taguées reste autorisée.
- Supprimez un tag d'une image.
- Transférer 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-west1
- 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 à l'aide du tag, ajoutez :staging
au nom de l'image:
us-west1-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-west1-docker.pkg.dev/my-project/my-repo/test@sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d
:
), 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 voir les métadonnées, y compris le Condensé de l'image.
Pour en savoir plus sur le taggage, 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-west1-docker.pkg.dev/example.com/my-project/my-repo/image-name
Noms de dépôts sous forme d'URL
Pour accéder à un dépôt ou à un artefact dans un dépôt dans la console Google Cloud, ajoutez https://
au nom complet.
Par exemple, pour afficher le dépôt us-west1-maven.pkg.dev/my-project/my-repo
, utilisez l'URL suivante:
https://us-west1-maven.pkg.dev/my-project/my-repo
Pour afficher l'image us-west1-docker.pkg.dev/example.com/my-project/my-repo/my-image
, utilisez l'URL suivante:
https://us-west1-docker.pkg.dev/example.com/my-project/my-repo/my-image
Tout utilisateur authentifié autorisé à accéder au dépôt peut utiliser ces liens.