Installer l'image Docker du SDK Cloud

L'image Docker du SDK Cloud est essentiellement constituée du SDK Cloud installé sur une image d'OS basée sur Debian.

Cela vous permet d'extraire la version du SDK Cloud de votre choix en tant qu'image Docker depuis Dockerhub et d'exécuter rapidement des commandes gcloud dans un conteneur isolé et correctement configuré.

L'image Docker proprement dite est hébergée sur Container Registry et Docker Hub, avec les noms de dépôt suivants :

  • Container Registry : gcr.io/google.com/cloudsdktool/cloud-sdk.
  • Docker Hub : google/cloud-sdk.

Options d'images Docker

Les images Docker du SDK Cloud sont disponibles en trois versions : latest (la plus récente), slim (minimale) et alpine (basée sur Alpine). Vous pouvez spécifier votre préférence de version à l'aide du tag correspondant (à insérer après le nom du dépôt hôte) :

  • :latest, :VERSION : image volumineuse (basée sur Debian) contenant des composants supplémentaires préinstallés
  • :slim, :VERSION-slim : image réduite (basée sur Debian) sans composants préinstallés
  • :alpine, :VERSION-alpine : image la plus légère (basée sur Alpine) sans composants supplémentaires installés

Installer une image Docker spécifiée

  1. Pour utiliser l'image correspondant à la dernière version du SDK Cloud, gcr.io/google.com/cloudsdktool/cloud-sdk:latest, extrayez celle-ci de Container Registry en exécutant la commande suivante :

    docker pull gcr.io/google.com/cloudsdktool/cloud-sdk:latest
    
  2. Vérifiez l'installation (si vous avez extrait la version la plus récente) en exécutant la commande :

    docker run gcr.io/google.com/cloudsdktool/cloud-sdk:latest gcloud version
    

    Pour une version spécifique (par exemple la version 266.0.0), exécutez la commande suivante :

    docker run gcr.io/google.com/cloudsdktool/cloud-sdk:266.0.0 gcloud version
    
  3. Authentifiez-vous avec l'outil de ligne de commande gcloud en exécutant la commande suivante :

    docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/cloud-sdk gcloud auth login
    

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

  4. Pour vérifier, répertoriez les instances Compute utilisant ces identifiants en exécutant le conteneur avec --volumes-from :

    docker run --rm --volumes-from gcloud-config gcr.io/google.com/cloudsdktool/cloud-sdk gcloud compute instances list --project your_project
    

Installer des composants supplémentaires

Par défaut, toutes les images les plus récentes (gcr.io/google.com/cloudsdktool/cloud-sdk:latest et gcr.io/google.com/cloudsdktool/cloud-sdk:VERSION) contiennent l'ensemble des composants gcloud.

Toutefois, les images gcr.io/google.com/cloudsdktool/cloud-sdk:slim et gcr.io/google.com/cloudsdktool/cloud-sdk:alpine ne contiennent pas de composants supplémentaires préinstallés. Vous pouvez enrichir ces images en suivant les instructions ci-dessous :

Images basées sur Debian

Pour installer un composant supplémentaire, tel que google-cloud-sdk-datastore-emulator, exécutez la commande suivante :

cd debian_slim/
docker build --build-arg CLOUD_SDK_VERSION=159.0.0 \
    --build-arg INSTALL_COMPONENTS="google-cloud-sdk-datastore-emulator" \
    -t my-cloud-sdk-docker:slim .

Images basées sur Alpine

Pour installer des composants supplémentaires sur les images basées sur Alpine, créez un fichier Docker qui utilise l'image du SDK Cloud en tant qu'image de base. Par exemple, pour ajouter les composants kubectl et app-engine-java, créez un Dockerfile ressemblant à ceci :

FROM gcr.io/google.com/cloudsdktool/cloud-sdk:alpine
RUN apk --update add openjdk7-jre
RUN gcloud components install app-engine-java kubectl

Exécutez ensuite la commande ci-dessous :

docker build -t my-cloud-sdk-docker:alpine .

Installer des versions spécifiques du SDK Cloud

Pour installer des versions spécifiques du SDK Cloud, indiquez la version de votre choix lorsque vous exécutez la commande docker build, comme suit :

docker build -t my-cloud-sdk-docker:alpine --build-arg CLOUD_SDK_VERSION=<release_number> .