L'image Docker de la Google Cloud CLI vous permet d'extraire une version spécifique de gcloud 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 sur une image Debian ou Alpine. 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, et toutes installent les outils de ligne de commande gcloud
, gsutil
et bq
. Nous vous recommandons d'installer l'image :stable
pour un environnement minimal. Vous pouvez également utiliser l'image stable comme image de base pour vos propres déploiements, ce qui vous permet d'installer uniquement les composants et les packages dont vous avez besoin dans votre image:
:stable
,:VERSION-stable
: fournit une installation gcloud avec les composantsgsutil
etbq
. L'image est basée sur la dernière image de base Debian 12 fournie par Google. Cette image est compatible avec les plates-formeslinux/amd
etlinux/arm
. Pour installer des versions gcloud spécifiques, utilisez la balise:VERSION-stable
.
Si vous souhaitez utiliser une image basée sur Alpine, vous pouvez installer l'image suivante:
:alpine
,:VERSION-alpine
: semblable à la version stable, mais basé sur la dernière image de base Alpine 3.19. Cette image est compatible avec les plates-formeslinux/amd
etlinux/arm
. Pour installer des versions gcloud spécifiques, utilisez la balise:VERSION-alpine
.
Si vous souhaitez des images avec des composants ou des packages supplémentaires préinstallés, vous pouvez installer l'une des options suivantes:
:emulators
,:VERSION-emulators
: semblable à la version stable, avec l'ajout de tous les composants de l'émulateur. L'image est basée sur la dernière image de base Debian 12 fournie par Google et utilise le gestionnaire de composants pour installer les composants. Cette image est compatible avec les plates-formeslinux/amd
etlinux/arm
. Pour installer des versions gcloud spécifiques, utilisez la balise:VERSION-emulators
.:latest
,:VERSION
: semblable à la version stable, avec des composants supplémentaires (la liste des composants installés dans l'image est indiquée ci-dessous) préinstallés. L'image est basée sur la dernière image de base Debian 12 fournie par Google et utilise des paquets deb pour installer les composants. Pour installer des versions gcloud spécifiques, utilisez la balise:VERSION
.:slim
,:VERSION-slim
: semblable à la version stable, mais inclut les packages tiers supplémentaires tels quecurl
,python3-crcmod
,apt-transport-https
,lsb-release
,openssh-client
,git
,make
etgnupg
. Cette image est basée sur la dernière image de base Debian 12 fournie par Google. Cette image est compatible avec les plates-formeslinux/amd
etlinux/arm
. Pour installer des versions gcloud spécifiques, utilisez la balise:VERSION-slim
.:debian_component_based
,:VERSION-debian_component_based
: semblable à la version stable, avec des composants supplémentaires (la liste des composants installés dans l'image est indiquée ci-dessous) préinstallés. L'image est basée sur la dernière image de base Debian 12 fournie par Google et utilise le gestionnaire de composants pour installer les composants. Cette image est compatible avec les plates-formeslinux/amd
etlinux/arm
. Pour installer des versions gcloud spécifiques, utilisez la balise:VERSION-debian_component_based
.
Utiliser une version spécifique en production
Si vous utilisez une balise qui n'est pas associée à une version gcloud spécifique, votre environnement peut subir les modifications cassantes suivantes:
- Mises à jour de la version de Google Cloud SDK, qui peuvent modifier le comportement de l'outil.
- Mises à jour de la liste des composants installés.
Pour éviter d'éventuelles modifications non compatibles, nous vous recommandons d'utiliser l'une des options suivantes dans votre environnement de production:
- Un tag avec version, tel que
:496.0.0-stable
- Un hachage d'image spécifique, par exemple:
gcr.io/google.com/cloudsdktool/google-cloud-cli@sha256:9c0efc06918d5405b13bfe4bb5ce1d98ea4695cc703446e9e0aa0ee8800622df
- Héberger l'image dans votre propre dépôt
Vous devez également mettre à jour les images régulièrement pour obtenir la dernière version de gcloud.
Consultez la dernière version de Google Cloud CLI et toutes les versions précédentes de Google Cloud CLI.
Composants installés dans chaque balise
Composant | :stable | :alpine | :emulators | :latest | :slim | :debian_component_based |
---|---|---|---|---|---|---|
Extensions Go App Engine | x | x | ||||
Appctl | x | |||||
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 | |||
Émulateur Spanner | x | x | ||||
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 |
Kustomize | x | |||||
Minikube | x | |||||
CLI Nomos | x | |||||
Assistant d'extraction de l'API On-Demand Scanning | x | x | ||||
Skaffold | x | |||||
anthos-auth | x | |||||
Commandes gcloud alpha | x | x | x | x | ||
Commandes gcloud bêta | x | x | x | x | ||
Extensions Java d'application gcloud | x | |||||
Extensions Python d'application gcloud | x | |||||
Extensions Python d'application gcloud (bibliothèques supplémentaires) | x | x | ||||
gke-gcloud-auth-plugin | x | x | ||||
kpt | x | x | ||||
kubectl | x | x |
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
Vous pouvez également utiliser le hachage de l'image pour extraire une image Docker spécifique du dépôt. Pour extraire la même image de l'exemple précédent (
:489.0.0-stable
) à l'aide du hachage d'image, exécutez la commande suivante:docker pull gcr.io/google.com/cloudsdktool/google-cloud-cli@sha256:589a0db8919614ef919dfd6ed89127211b4b6bf5ee6a2e2ce92abf33cbfe49d8
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
:stable
flottante (qui pointe toujours vers la dernière 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 qui est 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 Compute à l'aide des identifiants en exécutant le conteneur 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é. Mettez ensuite à jour la configuration pour lire le compte de service monté à l'aide de la variable d'environnementCLOUDSDK_CONFIG
.Dans l'exemple suivant, la configuration
mycloud
a déjà définiauth/credential_file_override
. La configuration pointe vers un fichier de certificat présent dans le conteneur en tant qu'installation de volume distincte.$ 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 de variables d'environnement, consultez les ressources 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
) ne contiennent aucun composant installé autre que bq
et gsutil
. Pour installer des composants supplémentaires pour 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 à partir de :stable
, vous pouvez cloner le répertoire GitHub cloud-sdk-docker et utiliser la commande docker build
pour créer l'image Docker :stable
à partir du fichier Dockerfile avec l'argument 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 paquets apt 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 sur les images basées sur Alpine, créez un Dockerfile qui utilise l'image cloud-sdk
en tant qu'image de base.
Par exemple, pour ajouter des composants kubectl
et app-engine-java
:
- Créez le fichier Dockerfile comme suit:
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 les images Docker :latest
, :slim
, :emulators
, :alpine
et :debian_component_based
, nous vous recommandons de migrer vers l'image :stable
basée sur Debian pour réduire la taille de l'image et améliorer les correctifs de sécurité. Pour découvrir comment migrer vers l'image :stable
, consultez la section Migrer vers l'image :stable
.
Obtenir de l'aide pour les images
Les images hébergées sur Artifact Registry fournissent des installations entièrement fonctionnelles de la 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 paquets ou des outils supplémentaires, vous pouvez créer votre propre couche d'image au-dessus de l'image Docker de la CLI Google Cloud.
Dépannage
Que devez-vous faire si une erreur failed to fetch <image-tag>
s'affiche lorsque vous extrayez 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 les options d'image Docker pour connaître les options d'image Docker disponibles et migrez vers l'une des balises compatibles.
Dans quels cas ne pouvez-vous pas étendre directement l'image Docker :stable
pour prendre en charge 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 à prendre en compte 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 analyseur a détecté 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 analyseur a détecté des failles non résolues dans les images Docker de la Google Cloud CLI, vous pouvez signaler un bug en incluant les informations suivantes:
- Type de faille.
- Emplacement exact dans l'image.
Les failles des images de base de l'OS ne sont traitées que pour s'assurer que les images Docker de la Google Cloud CLI utilisent des versions récentes et stables de Debian ou d'Alpine Linux.