Como instalar a imagem do Docker para SDK do Cloud

A imagem do Docker para SDK do Cloud é basicamente o SDK do Cloud instalado sobre uma imagem do SO baseada no Debian.

Isso permite que você extraia a versão pretendida do SDK do Cloud como uma imagem do Docker do Dockerhub e execute rapidamente comandos gcloud em um contêiner isolado e configurado corretamente.

A própria imagem do Docker é hospedada no Container Registry e no Docker Hub (em inglês), com os seguintes nomes de repositório:

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

Opções de imagem do Docker

As imagens do Docker para SDK do Cloud vêm em três tipos: latest (mais recentes), slim (finas) e alpine (alpinas). É possível especificar sua preferência usando a tag apropriada depois do nome do repositório host:

  • :latest, :VERSION: imagem grande baseada no Debian com componentes complementares pré-instalados
  • :slim, :VERSION-slim: imagem menor baseada no Debian sem componentes pré-instalados
  • :alpine, :VERSION-alpine: imagem menor baseada no Alpine sem componentes complementares instalados

Como instalar uma imagem do Docker especificada

  1. Para usar a imagem da versão mais recente do SDK do Cloud, gcr.io/google.com/cloudsdktool/cloud-sdk:latest, extraia-a do Container Registry executando o seguinte comando:

    docker pull gcr.io/google.com/cloudsdktool/cloud-sdk:latest
    
  2. Para verificar a instalação da versão mais recente, execute o seguinte:

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

    Se preferir, execute este comando para uma versão específica, 266.0.0:

    docker run gcr.io/google.com/cloudsdktool/cloud-sdk:266.0.0 gcloud version
    
  3. Autentique com a ferramenta de linha de comando gcloud executando:

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

    Depois de autenticadas com sucesso, as credenciais são preservadas no volume de gcloud-config container.

  4. Liste instâncias de computador usando essas credenciais para verificar, executando o contêiner com --volumes-from:

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

Como instalar componentes complementares

Por padrão, as imagens mais recentes, gcr.io/google.com/cloudsdktool/cloud-sdk:latest e gcr.io/google.com/cloudsdktool/cloud-sdk:VERSION, têm todos os componentes gcloud instalados.

No entanto, as imagens gcr.io/google.com/cloudsdktool/cloud-sdk:slim e gcr.io/google.com/cloudsdktool/cloud-sdk:alpine não vêm com componentes complementares pré-instalados. É possível estender essas imagens seguindo as instruções abaixo:

Imagens baseadas no Debian

Para instalar um componente complementar, como google-cloud-sdk-datastore-emulator, execute o seguinte:

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 .

Imagens baseadas em Alpine

Para instalar componentes complementares para imagens baseadas em Alpine, crie um Dockerfile que use a imagem do SDK do Cloud como a imagem de base. Por exemplo, para adicionar os componentes kubectl e app-engine-java, crie um Dockerfile para ter esta aparência:

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

Depois disso, execute o seguinte comando:

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

Como instalar versões específicas do SDK do Cloud

Para instalar versões específicas do SDK do Cloud, transmita sua versão de preferência ao executar o comando docker build, da seguinte maneira:

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