Installer l'image Docker de la Google Cloud CLI

L'image Docker de la Google Cloud CLI vous permet d'extraire une version spécifique de la Google Cloud CLI en tant qu'image Docker depuis Artifact Registry et d'exécuter rapidement des commandes Google Cloud CLI dans un conteneur isolé et correctement configuré.

L'image Docker de la Google Cloud CLI est la gcloud CLI installée en haut d'une image Debian ou Alpine. La Les images Docker de la Google Cloud CLI permettent d'utiliser gcloud ainsi que ses composants groupés, sans avoir à installer manuellement gcloud sur votre machine locale.

Options d'images Docker

Il existe six images Docker Google Cloud CLI. Nous vous recommandons d'installer l'image stable suivante:

  • :stable, :VERSION-stable: image par défaut la plus petite (basée sur Debian) avec une l'installation gcloud standard.

Si vous souhaitez utiliser une image basée sur Alpine, vous pouvez installer la commande suivante : image:

  • :alpine, :VERSION-alpine: image plus petite (basée sur les Alpes) sans ajout d'images installés. Cette image est compatible avec linux/arm.

Si vous souhaitez des images avec des packages supplémentaires ou gcloud composants préinstallés, vous pouvez installer l'une des options suivantes:

  • :emulators, :VERSION-emulators: image plus petite (basée sur Debian) avec émulateur pré-installés.
  • :latest, :VERSION : image volumineuse (basée sur Debian) contenant des composants supplémentaires préinstallés
  • :slim, :VERSION-slim: image plus petite (basée sur Debian) sans composant préinstallé.
  • :debian_component_based, :VERSION-debian_component_based : image volumineuse (basée sur Debian) contenant des composants supplémentaires préinstallés Contrairement à :latest, qui utilisait des paquets deb, cette image utilise le gestionnaire de composants pour installer les composants. Cette image prend en charge linux/arm.

Composants installés dans chaque balise

Composant :stable :alpine :emulators :dernière :slim :debian_component_based
Extensions Go App Engine x x
Appctl x
Outil d'aide au package du module Go d'Artifact Registry
Outil de ligne de commande BigQuery x x x x x x
Python 3.9 groupé x x x x x x
Outil de ligne de commande Bigtable x x
Émulateur Bigtable x x x
Émulateur Cloud Datastore x x x
Émulateur Cloud Firestore x x
Émulateur Cloud Pub/Sub x x x
Proxy Cloud Run
Proxy Cloud SQL
Émulateur Spanner x x
Outil de migration Spanner
Outil de ligne de commande Cloud Storage x x x x x x
Bibliothèques principales de la Google Cloud CLI x x x x x x
Outil de hachage CRC32C Google Cloud x x x x x x
Assistant d'identification Docker de Google Container Registry
Kustomize x
Flux de journaux
Minikube x
CLI Nomos x
Assistant d'extraction de l'API On-Demand Scanning x x
Skaffold x
Outils Terraform
anthos-auth x
config-connector
Commandes gcloud alpha x x x x
Commandes gcloud bêta x x x x
Extensions Java gcloud app x
Extensions Python gcloud app x
Extensions Python pour gcloud app (bibliothèques supplémentaires) x x
gke-gcloud-auth-plugin x x
kpt x x
kubectl x x
kubectl-oidc
kg

Utiliser une version spécifique en production

Les tags :<tag> et :<VERSION-tag> de l'image Docker de la Google Cloud CLI sont tous les jours pour incorporer immédiatement les correctifs de vulnérabilité des images de base. Si vous utilisez une balise qui n'est pas associée à une version spécifique, votre environnement peut subir les modifications cassantes suivantes :

  • Mises à jour de version de Google Cloud SDK pouvant modifier le comportement de l'outil.
  • Mises à jour de la liste des composants installés.

Pour éviter d'éventuelles modifications destructives, il est recommandé d'utiliser utilisez l'une des méthodes suivantes:

  • Une balise avec version datée, par exemple :496.0.0-stable-20241015
  • Un hachage d'image spécifique tel que: gcr.io/google.com/cloudsdktool/google-cloud-cli@sha256:9c0efc06918d5405b13bfe4bb5ce1d98ea4695cc703446e9e0aa0ee8800622df

Vous devez également mettre à jour les images régulièrement pour obtenir version de gcloud.

Vérifiez la dernière version de la Google Cloud CLI et toutes les versions précédentes de la Google Cloud CLI.

Installer une image Docker

L'image Docker est hébergée sur Artifact Registry, avec le nom de dépôt suivant : gcr.io/google.com/cloudsdktool/google-cloud-cli. Les images sont également disponibles à l'aide des dépôts us.gcr.io, eu.gcr.io et asia.gcr.io.

  1. Pour utiliser l'image de la version stable de la Google Cloud CLI, gcr.io/google.com/cloudsdktool/google-cloud-cli:stable, extrayez-la de Artifact Registry en exécutant la commande suivante :

    docker pull gcr.io/google.com/cloudsdktool/google-cloud-cli:489.0.0-stable
    
  2. Vérifiez l'installation en exécutant la commande suivante :

    docker run --rm gcr.io/google.com/cloudsdktool/google-cloud-cli:489.0.0-stable gcloud version
    

    Si vous avez utilisé la balise flottante :stable (qui pointe toujours vers la dernière version version), vérifiez l'installation en exécutant la commande suivante:

    docker run --rm gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version
    

S'authentifier avec l'image Docker de la Google Cloud CLI

Authentifiez-vous avec l'image Docker Google Cloud CLI en exécutant l'une des commandes suivantes :

  • Authentifiez gcloud avec vos identifiants utilisateur en exécutant gcloud auth login :

    docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud auth login
    
  • Si vous devez authentifier les applications qui utilisent les API Google Cloud, transmettez l'option --update-adc :

    docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud auth login --update-adc
    
  • Pour définir un projet par défaut sélectionné chaque fois que vous ouvrez le conteneur, exécutez la commande suivante:

    docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable /bin/bash -c 'gcloud auth login && gcloud config set project your-project'
    

    Une fois l'authentification effectuée, les identifiants sont conservés dans le volume de gcloud-config container.

    Pour vérifier, listez l'instance de calcul à l'aide des identifiants en exécutant la commande avec --volumes-from:

    docker run --rm --volumes-from gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud compute instances list --project your-project
    
  • Si vous souhaitez vous authentifier à l'aide d'un compte de service, utilisez la propriété auth/credential_file_override pour définir un chemin d'accès à un compte de service installé. Ensuite, mettez à jour la configuration pour lire le service installé. à l'aide de la variable d'environnement CLOUDSDK_CONFIG.

    Dans l'exemple suivant, la configuration mycloud a le rôle auth/credential_file_override déjà défini. La configuration renvoie vers de certificat existant dans le conteneur en tant que fichier l'installation de volumes.

    $ docker run -ti -e CLOUDSDK_CONFIG=/config/mygcloud \
                  -v `pwd`/mygcloud:/config/mygcloud \
                  -v `pwd`:/certs  gcr.io/google.com/cloudsdktool/google-cloud-cli:stable /bin/bash
    
    bash-4.4# gcloud config list
    [auth]
    credential_file_override = /certs/svc_account.json
    
    bash-4.4# head -10  /certs/svc_account.json
    {
       "type": "service_account",
       "project_id": "project_id1",
    ....
    
    bash-4.4# gcloud projects list
    PROJECT_ID           NAME         PROJECT_NUMBER
    project_id1          GCPAppID     1071284184432
    

    Pour en savoir plus sur la définition des variables d'environnement, consultez les pages suivantes:

Installer des composants supplémentaires

Vous pouvez installer des composants supplémentaires dans l'image Docker de la Google Cloud CLI. L'approche d'installation de composants supplémentaires varie en fonction du type d'image de base sous-jacent.

Images basées sur Debian

Par défaut, les images stables (:stable et :VERSION-stable) n'ont pas les composants installés autres que bq et gsutil. Pour installer d'autres de l'image stable, effectuez l'une des opérations suivantes:

Créer votre propre image à l'aide du fichier Dockerfile de l'image :stable

Pour créer votre propre image avec un composant supplémentaire de :stable, vous pouvez cloner le SDK cloud-sdk-docker Répertoire GitHub et utilisez la commande docker build pour créer l'image Docker :stable du Dockerfile avec la commande INSTALL_COMPONENTS ; . Par exemple, pour ajouter des composants datastore-emulator:

# clone the GitHub docker directory 
$ git clone https://github.com/GoogleCloudPlatform/cloud-sdk-docker.git
$ docker build --build-arg CLOUD_SDK_VERSION=<release_version> \
   --build-arg INSTALL_COMPONENTS="google-cloud-cli-datastore-emulator=<release_version>-0" \
   -t my-cloud-sdk-docker:stable .

Installer des packages ou des composants supplémentaires au moment de l'exécution

Si vous avez extrait l'image Docker stable, vous pouvez installer les composants supplémentaires suivants au moment de l'exécution :

  • composants gcloud à l'aide de la variable d'environnement COMPONENTS.
  • apt-packages à l'aide de la variable d'environnement APT_PACKAGES.

Par exemple, si vous souhaitez installer les composants cbt et kpt au moment de l'exécution, vous pouvez exécuter la commande suivante:

docker run -e COMPONENTS='google-cloud-cli-cbt google-cloud-cli-kpt' \
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version

Pour installer les packages apt-packages curl et gcc lors de l'exécution de l'image Docker : exécutez la commande suivante:

docker run -e APT_PACKAGES='curl gcc' \
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version

Images basées sur Alpine

Pour installer des composants supplémentaires pour les images basées sur Alpine, créez un Dockerfile qui utilise l'image cloud-sdk comme image de base.

Par exemple, pour ajouter les composants kubectl et app-engine-java:

  1. Créez le Dockerfile sous la forme suivante:
FROM gcr.io/google.com/cloudsdktool/google-cloud-cli:alpine
RUN apk --update add gcompat openjdk8-jre
RUN gcloud components install app-engine-java kubectl
  1. Créez l'image en exécutant la commande suivante :
docker build -t my-cloud-sdk-docker:alpine .

Pour les images basées sur Alpine, vous devez installer manuellement les dépendances des composants supplémentaires.

Migrer vers l'image :stable

Si vous utilisez :latest, :slim, :emulators, :alpine et :debian_component_based d'images Docker, nous vous recommandons de les migrer l'image :stable basée sur Debian pour obtenir une taille d'image plus petite et une sécurité renforcée. ou des correctifs. Pour connaître la procédure de migration vers l'image :stable, consultez Migration vers l'image :stable

Obtenir de l'aide pour les images

Les images hébergées sur le Artifact Registry fournir des installations entièrement fonctionnelles de Google Cloud CLI. Si vous trouvez des bugs ou des problèmes liés aux images Docker, vous pouvez créer une demande d'assistance.

Lorsque vous avez besoin d'une image avec des composants, des packages ou des outils supplémentaires, vous pouvez créez votre propre calque d'images au-dessus du Image Docker de la Google Cloud CLI.

Dépannage

Que faire si une erreur failed to fetch <image-tag> s'affiche ? lors de l'extraction de l'image Docker ?

Si une erreur failed to fetch <image-tag> s'affiche lorsque vous essayez d'extraire une image Docker de la Google Cloud CLI, vous essayez probablement d'extraire une balise d'image qui a été abandonnée et supprimée. Consultez le Options d'image Docker pour connaître les options d'image Docker disponibles et migrez vers l'une des balises acceptées.

Dans quels cas ne pouvez-vous pas étendre directement le Docker :stable pour votre workflow actuel ?

Le tableau suivant présente les cas d'utilisation où vous ne pouvez pas étendre directement l'image Docker :stable pour l'adapter à votre workflow, ainsi que les options à utiliser pour y remédier :

Cas d'utilisation Options de correction
Les composants app-engine (utilisés dans l'image Docker :latest ou :debian_component_based) ne sont pas compatibles avec Debian 12. Créez votre propre image à partir d'une image Debian (Debian 11) compatible pour installer les composants app-engine.
Les packages tiers tels que docker ou docker-buildx ne sont pas inclus dans l'image :stable. Si vous avez besoin de ces packages tiers, créez votre propre image ou installez-les manuellement dans l'image Docker :stable.

Que devez-vous faire si votre outil d'analyse détecte des failles dans les images Docker ?

Les images Docker de la CLI Google Cloud sont hébergées dans Artifact Registry. Les images sont analysées quotidiennement, et les failles et expositions courantes (CVE) sont atténuées avant chaque nouvelle version de gcloud. Toutefois, si votre scanner a détecté des failles des images Docker Google Cloud CLI non résolues, vous pouvez signaler un bug qui comprend les informations suivantes:

  • Type de faille.
  • L'emplacement exact sur l'image.

Les vulnérabilités des images d'OS de base ne sont traitées que pour garantir Les images Docker de la Google Cloud CLI utilisent des versions récentes et stables de Debian ou Alpine Linux