Cette page explique comment ajouter, afficher et supprimer des gems Ruby et des versions de gems.
Avant de commencer
Installez et initialisez la Google Cloud CLI.
La version 354.0.0 ou ultérieure de Google Cloud CLI est requise pour exécuter des commandes pour les dépôts Ruby. Vous pouvez vérifier la version à l'aide de la commande suivante :
gcloud versionSi le dépôt cible n'existe pas, créez un dépôt de packages Ruby.
Vérifiez que Ruby est installé. Pour obtenir des instructions d'installation, consultez leGoogle Cloud tutoriel de configuration de Ruby.
(Facultatif) Définissez des valeurs par défaut pour les commandes gcloud.
Rôles requis
Pour obtenir les autorisations nécessaires pour gérer les gems, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le dépôt :
-
Afficher des gems ou des fichiers dans des gems :
Lecteur Artifact Registry (
roles/artifactregistry.reader) -
Télécharger ou installer des gems :
Lecteur Artifact Registry (
roles/artifactregistry.reader) -
Ajoutez des gems à un dépôt :
Rédacteur Artifact Registry (
roles/artifactregistry.writer) -
Supprimer des gems :
Administrateur de dépôts Artifact Registry (
roles/artifactregistry.repoAdmin)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Ajouter des Gems
Les packages Ruby sont appelés gems. Chaque gem contient un nom, une version et une plate-forme. Un projet Ruby doit également contenir un gemfile, qui est un fichier de configuration spécifiant les dépendances de gem requises.
Modes de dépôt : standard
Lorsque vous compilez un projet Ruby, les fichiers de distribution sont enregistrés dans un sous-répertoire lib de votre projet. Vous pouvez ensuite utiliser RubyGems pour importer des gems dans un dépôt standard.
Pour ajouter un gem à votre dépôt Artifact Registry :
gem push GEM_NAME --host https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Où :
- GEM_NAME est le nom du gem à envoyer à votre dépôt.
- LOCATION est l'emplacement de votre dépôt.
- PROJECT est l'ID de projet. Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
- REPOSITORY est le nom de votre dépôt dans Artifact Registry.
Afficher les gems et les versions
Modes de dépôt : standard
Pour afficher les packages et les versions de package à l'aide de la console Google Cloud ou de gcloud:
Console
Ouvrez la page Dépôts dans la console Google Cloud .
Dans la liste des dépôts, cliquez sur le dépôt approprié.
La page Packages répertorie les packages du dépôt.
Cliquez sur un package pour afficher ses versions.
gcloud
Pour répertorier les packages d'un dépôt, exécutez la commande suivante :
gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]
Remplacez les éléments suivants :
REPOSITORYest le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cet indicateur pour utiliser le dépôt par défaut.-
LOCATIONest l'emplacement régional ou multirégional du dépôt. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
Pour afficher les versions d'un package, exécutez la commande suivante :
gcloud artifacts versions list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
Remplacez les éléments suivants :
PACKAGEest l'ID du package ou l'identifiant complet du package.REPOSITORYest le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cet indicateur pour utiliser le dépôt par défaut.-
LOCATIONest l'emplacement régional ou multirégional du dépôt. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
Pour les dépôts distants, la liste renvoyée doit inclure toutes les dépendances directes et transitives.
Répertorier les fichiers
Modes de dépôt : standard
Vous pouvez lister les fichiers d'un dépôt, les fichiers de toutes les versions d'un package spécifié ou les fichiers d'une version spécifique d'un package.
Pour toutes les commandes suivantes, vous pouvez définir un nombre maximal de fichiers à renvoyer en ajoutant l'option --limit à la commande.
Pour répertorier tous les fichiers dans le projet, le dépôt et l'emplacement par défaut lorsque les valeurs par défaut sont configurées :
gcloud artifacts files list
Pour lister les fichiers d'un projet, d'un dépôt et d'un emplacement spécifiques, exécutez la commande suivante :
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION
Pour lister les fichiers de toutes les versions d'un package spécifique :
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
Pour lister les fichiers d'une version de package spécifique :
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--version=VERSION
Remplacez les valeurs suivantes :
LOCATION: emplacement régional ou multirégional du dépôt.PROJECT: ID de votre projet Google Cloud . Si l'ID du projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.REPOSITORY: nom du dépôt où l'image est stockée.PACKAGE: nom du package.VERSION: version du package.
Exemples
Considérez les informations suivantes sur le package :
- Projet :
my-project - Dépôt :
my-repo - Emplacement du dépôt :
us-west1 - Package :
my-app
La commande suivante liste tous les fichiers du dépôt my-repo à l'emplacement us-west1 dans le projet par défaut :
gcloud artifacts files list \
--location=us-west1 \
--repository=my-repo
1.0 du package.
gcloud artifacts files list \
--project=my-project \
--location=us-west1 \
--repository=my-repo \
--package=my-app \
--version=1.0
Installer des gems
Modes de dépôt : standard
Pour installer la dernière version stable d'un package :
gem install GEM_NAME
Pour les dépôts standards, vous téléchargez un package directement à partir du dépôt.
Pour un dépôt distant, vous téléchargez une copie mise en cache du package et de ses dépendances. Si aucune copie mise en cache n'existe, le dépôt distant télécharge le package à partir de la source en amont et le met en cache avant de vous le fournir. Vous pouvez vérifier que le dépôt distant a récupéré les packages à partir de la source en amont en affichant la liste des packages dans le dépôt.
Pour un dépôt virtuel, Artifact Registry recherche le package demandé dans les dépôts en amont.
- Les dépôts distants en amont téléchargeront et mettront en cache le package demandé si aucune copie mise en cache n'existe. Les dépôts virtuels ne diffusent que les packages demandés. Ils ne les stockent pas.
- Si vous demandez une version disponible dans plusieurs dépôts en amont, Artifact Registry choisit un dépôt en amont à utiliser en fonction des paramètres de priorité configurés pour le dépôt virtuel.
Prenons l'exemple d'un dépôt virtuel avec les paramètres de priorité suivants pour les dépôts en amont :
main-repo: priorité définie sur100secondary-repo1: priorité définie sur80.secondary-repo2: priorité définie sur80.test-repo: priorité définie sur20.
main-repo a la valeur de priorité la plus élevée. Le dépôt virtuel le recherche donc toujours en premier.
Les priorités de secondary-repo1 et secondary-repo2 sont définies sur 80. Si un package demandé n'est pas disponible dans main-repo, Artifact Registry recherche ensuite dans ces dépôts. Comme ils ont tous les deux la même valeur de priorité, Artifact Registry peut choisir de diffuser un package à partir de l'un ou l'autre dépôt si la version est disponible dans les deux.
test-repo a la valeur de priorité la plus basse et diffusera un artefact stocké si aucun des autres dépôts en amont ne le possède.
Informations supplémentaires
Lorsque vous envoyez ou extrayez des gems depuis un dépôt Artifact Registry, si le gem demandé ou ses dépendances ne sont pas trouvés dans le dépôt spécifié, votre client gem utilise toute autre source définie dans le Gemfile de votre gem.
Si vous souhaitez uniquement extraire et installer directement depuis Artifact Registry, exécutez la commande suivante pour supprimer une source non Artifact Registry de votre fichier Gemfile :
gem sources --remove SOURCE
Pour ajouter à nouveau rubygems.org en tant que source :
gem sources --add SOURCE
Où SOURCE est l'adresse de la source, par exemple https://rubygems.org.
Supprimer des packages et des versions
Modes de dépôt : standard
Vous pouvez supprimer un package et toutes ses versions, ou supprimer une version spécifique.
- La suppression d'un package est irréversible.
- Pour les dépôts distants, seule la copie mise en cache du package est supprimée. La source en amont n'est pas affectée. Si vous supprimez un package mis en cache, Artifact Registry le téléchargera et le mettra à nouveau en cache la prochaine fois que le dépôt recevra une demande pour la même version du package.
Avant de supprimer un package ou une version de package, vérifiez que vous avez communiqué ou résolu toute dépendance importante associée.
Pour supprimer un package, procédez comme suit :
Console
Ouvrez la page Dépôts dans la console Google Cloud .
Dans la liste des dépôts, cliquez sur le dépôt approprié.
La page Packages répertorie les packages du dépôt.
Sélectionnez le package que vous souhaitez supprimer.
Cliquez sur SUPPRIMER.
Dans la boîte de dialogue de confirmation, cliquez sur SUPPRIMER.
gcloud
Exécutez la commande ci-dessous.
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Remplacez les éléments suivants :
PACKAGEest le nom du package dans le dépôt.REPOSITORYest le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cet indicateur pour utiliser le dépôt par défaut.-
LOCATIONest l'emplacement régional ou multirégional du dépôt. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
L'option --async permet à la commande de renvoyer immédiatement une réponse, sans attendre la fin de l'opération en cours.
Pour supprimer des versions d'un package, procédez comme suit :
Console
Ouvrez la page Dépôts dans la console Google Cloud .
Dans la liste des dépôts, cliquez sur le dépôt approprié.
La page Packages répertorie les packages du dépôt.
Cliquez sur un package pour afficher ses versions.
Sélectionnez les versions que vous souhaitez supprimer.
Cliquez sur SUPPRIMER.
Dans la boîte de dialogue de confirmation, cliquez sur SUPPRIMER.
gcloud
Exécutez la commande ci-dessous.
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Remplacez les éléments suivants :
VERSIONcorrespond au nom de la version à supprimer.PACKAGEest le nom du package dans le dépôt.REPOSITORYest le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cet indicateur pour utiliser le dépôt par défaut.-
LOCATIONest l'emplacement régional ou multirégional du dépôt. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
L'option --async permet à la commande de renvoyer immédiatement une réponse, sans attendre la fin de l'opération en cours.
Limites
Artifact Registry n'est pas compatible avec l'ajout de dépôts en tant que sources à l'aide de la commande
gem sources -add. Toutefois, vous pouvez ajouter manuellement des sources à votre fichier.gemrcou transmettre l'indicateur--sourcedirectement dans votre commandegem.Artifact Registry n'est pas compatible avec l'extraction de gems à l'aide de
gem fetch.
Étapes suivantes
- En savoir plus sur la gestion des images de conteneurs
- Télécharger des fichiers individuels dans un package