Instala la imagen de Docker del SDK de Cloud

La imagen de Docker del SDK de Cloud es, básicamente, el SDK de Cloud instalado sobre una imagen de SO basada en Debian.

Esto te permite extraer la versión deseada del SDK de Cloud como una imagen de Docker desde Dockerhub y ejecutar rápido comandos de gcloud dentro de un contenedor aislado y correctamente configurado.

La imagen de Docker está alojada tanto en Container Registry como en Docker Hub, con los siguientes nombres de repositorio:

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

Opciones de imagen de Docker

Las imágenes de Docker del SDK de Cloud tienen tres variantes: más reciente, Slim y Alpine. Puedes especificar tu preferencia con la etiqueta correspondiente (después del nombre del repositorio del host):

  • :latest, :VERSION: Imagen grande (basada en Debian) con componentes adicionales preinstalados
  • :slim, :VERSION-slim: Imagen más pequeña (basada en Debian) sin componentes preinstalados
  • :alpine, :VERSION-alpine: La imagen más pequeña (basada en Alpine) sin componentes adicionales instalados

Instala una imagen de Docker especificada

  1. Para usar la imagen de la versión más reciente del SDK de Cloud, gcr.io/google.com/cloudsdktool/cloud-sdk:latest, extráela de Container Registry con el siguiente comando:

    docker pull gcr.io/google.com/cloudsdktool/cloud-sdk:latest
    
  2. Verifica la instalación (si extrajiste la versión más reciente) con el siguiente comando:

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

    Como alternativa, ejecuta este comando para una versión específica, 266.0.0:

    docker run gcr.io/google.com/cloudsdktool/cloud-sdk:266.0.0 gcloud version
    
  3. Autentica con la herramienta de línea de comandos de gcloud con el siguiente comando:

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

    Una vez que se haya autenticado correctamente, las credenciales se conservan en el volumen de gcloud-config container.

  4. Enumera las instancias de procesamiento que usan estas credenciales para verificar mediante la ejecución del contenedor con --volumes-from:

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

Instala componentes adicionales

De forma predeterminada, las imágenes más recientes (gcr.io/google.com/cloudsdktool/cloud-sdk:latest y gcr.io/google.com/cloudsdktool/cloud-sdk:VERSION) tienen todos los componentes de gcloud instalados.

Las imágenes gcr.io/google.com/cloudsdktool/cloud-sdk:slim y gcr.io/google.com/cloudsdktool/cloud-sdk:alpine, sin embargo, no incluyen componentes adicionales preinstalados. Para extender estas imágenes, sigue estas instrucciones:

Imágenes basadas en Debian

Para instalar un componente adicional, como google-cloud-sdk-datastore-emulator, ejecuta lo siguiente:

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 .

Imágenes basadas en Alpine

A fin de instalar componentes adicionales para imágenes basadas en Alpine, crea un Dockerfile que use la imagen del SDK de Cloud como imagen base. Por ejemplo, para agregar componentes kubectl y app-engine-java, crea un Dockerfile que se vea de la siguiente manera:

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

Cuando termines, ejecuta el siguiente comando:

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

Instala versiones específicas del SDK de Cloud

Para instalar versiones específicas del SDK de Cloud, ingresa tu versión preferida cuando ejecutes el comando docker build de la siguiente manera:

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