Como instalar a imagem do Docker da CLI do Google Cloud

A imagem do Docker da CLI do Google Cloud permite extrair uma versão específica da CLI do gcloud como uma imagem do Docker do Container Registry e executar rapidamente os comandos da CLI do Google Cloud em um contêiner isolado e configurado corretamente.

A imagem do Docker da CLI do Google Cloud é a CLI gcloud instalada sobre uma imagem do Debian ou do Alpine. A imagem do Docker é hospedada no Container Registry com o seguinte nome de repositório: gcr.io/google.com/cloudsdktool/google-cloud-cli. As imagens também estão disponíveis usando os repositórios us.gcr.io, eu.gcr.io e asia.gcr.io.

Opções de imagem do Docker

Há cinco imagens do Docker da CLI do Google Cloud: recentes, slim, emuladores, debian_component_based e alpine. Especifique sua preferência usando a tag apropriada depois do nome do repositório do host:

  • :latest, :VERSION: imagem grande (baseada em Debian) com componentes extras pré-instalados.
  • :slim, :VERSION-slim: imagem menor (baseada em Debian) sem componentes pré-instalados.
  • :emulators, :VERSION-emulators: imagem menor (baseada em Debian) com componentes do emulador pré-instalados.
  • :alpine, :VERSION-alpine: a menor imagem (baseada em Alpine) sem outros componentes instalados. Esta imagem é compatível com linux/arm.
  • :debian_component_based, :VERSION-debian_component_based: baseado em Debian com todos os componentes. Diferente de :latest, que usava pacotes deb, essa imagem usa o gerenciador de componentes para instalar componentes. Essa imagem é compatível com linux/arm.

Como instalar uma imagem do Docker especificada

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

    docker pull gcr.io/google.com/cloudsdktool/google-cloud-cli:latest
    
  2. Se você extraiu a versão mais recente, verifique a instalação executando:

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

    Se você extraiu uma versão específica, verifique a instalação executando um comando semelhante ao seguinte exemplo:

    docker run --rm gcr.io/google.com/cloudsdktool/google-cloud-cli:372.0.0 gcloud version
    
  3. Autentique com a CLI do Google Cloud executando:

    docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli 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/google-cloud-cli gcloud compute instances list --project your_project
    

Como instalar componentes complementares

Por padrão, as imagens mais recentes (gcr.io/google.com/cloudsdktool/google-cloud-cli:latest e gcr.io/google.com/cloudsdktool/google-cloud-cli:VERSION) têm todos os componentes da CLI do Google Cloud instalados.

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

Imagens baseadas no Debian

Para instalar outro componente, como google-cloud-sdk-datastore-emulator, execute os seguintes comandos:

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 outros componentes para imagens baseadas em Alpine, crie um Dockerfile que use a imagem da CLI do Google Cloud como a imagem base. Por exemplo, para adicionar os componentes kubectl e app-engine-java, crie um Dockerfile para se parecer com este:

FROM gcr.io/google.com/cloudsdktool/google-cloud-cli: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 da CLI do Google Cloud

Para instalar versões específicas da CLI do Google Cloud, especifique a versão da CLI do gcloud de sua preferência ao executar o comando docker build:

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