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
.
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
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'environnementCLOUDSDK_CONFIG
.Dans l'exemple suivant, la configuration
mycloud
a le rôleauth/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
: installez les packages qui ne sont pas directement disponibles viaapt-get
, c'est-à-dire le moteur Docker. - Installer des packages ou des composants supplémentaires au moment de l'exécution : personnalisez votre image sans l'héberger.
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
:
- 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
- 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