A imagem Docker da Google Cloud CLI permite extrair uma versão específica do CLI gcloud como uma imagem Docker Artifact Registry e execute com rapidez Comandos da Google Cloud CLI em um contêiner isolado e configurado corretamente.
A imagem do Docker da Google Cloud CLI é a CLI gcloud instalada sobre uma imagem Debian ou Alpine. As imagens Docker da CLI do Google Cloud permitem o uso da gcloud e dos componentes agrupados sem precisar instalar manualmente a gcloud na máquina local.
Opções de imagem do Docker
Há seis imagens Docker da CLI do Google Cloud. Recomendamos que você instale esta imagem estável:
:stable
,:VERSION-stable
: imagem padrão, a menor (baseada em Debian) com uma a instalação padrão da gcloud.
Se você quiser usar uma imagem baseada em Alpine, instale a imagem a seguir:
:alpine
,:VERSION-alpine
: imagem menor baseada no Alpine sem componentes complementares instalados. Esta imagem é compatível com linux/arm.
Se você quiser imagens com pacotes adicionais ou componentes do gcloud pré-instalados, instale uma das seguintes opções:
:emulators
,:VERSION-emulators
: imagem menor (baseada no Debian) com componentes do emulador pré-instalados.:latest
,:VERSION
: imagem grande (baseada em Debian) com componentes adicionais que já vem pré-instalado.:slim
,:VERSION-slim
: imagem menor (baseada em Debian) sem componentes que já vem pré-instalado.:debian_component_based
,:VERSION-debian_component_based
: grande (baseado em Debian) com componentes adicionais pré-instalados. Ao contrário do:latest
, que usava pacotes deb, essa imagem usa o gerenciador de componentes para instalar componentes. Essa imagem oferece suporte a linux/arm.
Componentes instalados em cada tag
Componente | :stable | :alpine | :emulators | :latest | :slim | :debian_component_based |
---|---|---|---|---|---|---|
Extensões do App Engine para Go | x | x | ||||
Appctl | x | |||||
Ferramenta de linha de comando do BigQuery | x | x | x | x | x | x |
Python 3.9 agrupado | x | x | x | x | x | x |
Ferramenta de linha de comando do Bigtable | x | x | ||||
Emulador do Bigtable | x | x | x | |||
Emulador do Cloud Datastore | x | x | x | |||
Emulador do Cloud Firestore | x | x | ||||
Emulador do Cloud Pub/Sub | x | x | x | |||
Emulador do Spanner | x | x | ||||
Ferramenta de linha de comando do Cloud Storage | x | x | x | x | x | x |
Bibliotecas principais da CLI do Google Cloud | x | x | x | x | x | x |
Ferramenta de hash CRC32C do Google Cloud | x | x | x | x | x | x |
Kustomize | x | |||||
Minikube | x | |||||
CLI do Nomos | x | |||||
Auxiliar de extração da API On-Demand Scanning | x | x | ||||
Skaffold | x | |||||
anthos-auth | x | |||||
Comandos gcloud alpha | x | x | x | x | ||
Comandos beta do gcloud | x | x | x | x | ||
Extensões Java do app gcloud | x | |||||
Extensões Python do app gcloud | x | |||||
Extensões Python do app gcloud (bibliotecas extras) | x | x | ||||
gke-gcloud-auth-plugin | x | x | ||||
kpt | x | x | ||||
kubectl | x | x |
Usar uma versão específica na produção
As tags :<tag>
e :<VERSION-tag>
da imagem Docker da Google Cloud CLI são
refeitas diariamente para incorporar imediatamente as correções de vulnerabilidade da imagem de base.
Se você usar uma tag que não esteja vinculada a uma versão específica, seu ambiente poderá
apresentar as seguintes mudanças:
- Atualizações de versão do SDK Google Cloud, que podem alterar o comportamento da ferramenta.
- Atualizações na lista de componentes instalados.
Para evitar possíveis alterações interruptivas, é recomendável que sua produção use um destes métodos:
- Uma tag com controle de versão datado, como
:496.0.0-stable-20241015
- Um hash de imagem específico, como:
gcr.io/google.com/cloudsdktool/google-cloud-cli@sha256:9c0efc06918d5405b13bfe4bb5ce1d98ea4695cc703446e9e0aa0ee8800622df
Atualize as imagens periodicamente para receber as versões mais recentes versão da gcloud.
Confira a versão mais recente da CLI do Google Cloud e todas as versões anteriores.
Como instalar uma imagem do Docker
A imagem do Docker está hospedada no
Artifact 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
.
Para usar a imagem da versão estável da CLI do Google Cloud,
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable
, extraia-a do Artifact Registry executando o seguinte comando:docker pull gcr.io/google.com/cloudsdktool/google-cloud-cli:489.0.0-stable
Execute o seguinte comando para confirmar a instalação:
docker run --rm gcr.io/google.com/cloudsdktool/google-cloud-cli:489.0.0-stable gcloud version
Se você usou a tag
:stable
flutuante, que sempre aponta para a tag mais recente versão), verifique a instalação executando o seguinte comando:docker run --rm gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version
Como fazer a autenticação com a imagem do Docker da Google Cloud CLI
Faça a autenticação com a imagem do Docker da CLI do Google Cloud executando um dos seguintes comandos:
Faça a autenticação do gcloud com suas credenciais de usuário executando
gcloud auth login
:docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud auth login
Se você precisar autenticar aplicativos que usam as APIs do Google Cloud, transmita a opção
--update-adc
:docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud auth login --update-adc
Para definir um projeto padrão que é selecionado sempre que você abre o contêiner, execute o seguinte comando:
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'
Depois de autenticadas com sucesso, as credenciais são preservadas no volume de
gcloud-config container
.Para verificar, liste a instância de computação usando as credenciais. Para isso, execute o contêiner com
--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
Se quiser autenticar usando uma conta de serviço, use o
auth/credential_file_override
para definir um caminho conta de serviço montada. Em seguida, atualize a configuração para ler a conta de serviço montada usando a variável de ambienteCLOUDSDK_CONFIG
.No exemplo abaixo, a configuração
mycloud
tem oauth/credential_file_override
já definido. A configuração aponta para um arquivo de certificado que está presente no contêiner como um arquivo montagem de volume.$ 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
Para mais informações sobre como definir variáveis de ambiente, consulte:
- Como definir propriedades usando variáveis de ambiente
- gcloud config (link em inglês)
Como instalar componentes complementares
É possível instalar outros componentes na imagem Docker da Google Cloud CLI. A abordagem para instalar outros componentes varia de acordo com o tipo de imagem de base.
Imagens baseadas no Debian
Por padrão, as imagens estáveis (:stable
e :VERSION-stable
) não têm
componentes instalados que não sejam bq
e gsutil
. Para instalar outros
componentes na imagem estável, siga um destes procedimentos:
- Como criar sua própria imagem usando o Dockerfile da imagem
:stable
: Instalar pacotes que não estão diretamente disponíveis usandoapt-get
, ou seja, o mecanismo Docker. - Instalar pacotes ou componentes adicionais no momento da execução: personalize sua imagem sem hospedá-la.
Como criar sua própria imagem usando o Dockerfile da imagem :stable
Para criar sua própria imagem com um componente adicional do :stable
, clone
o diretório cloud-sdk-docker
do GitHub e use o comando docker build
para criar
a imagem do Docker :stable
do Dockerfile com o argumento
INSTALL_COMPONENTS
. Por exemplo, para adicionar componentes 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 .
Como instalar outros pacotes ou componentes no ambiente de execução
Se você extraiu a imagem do Docker stable
, é possível instalar o seguinte
componentes adicionais durante o tempo de execução:
- componentes do gcloud usando a variável de ambiente
COMPONENTS
. - apt-packages usando a variável de ambiente
APT_PACKAGES
.
Por exemplo, se você quiser instalar os componentes cbt
e kpt
no momento da execução,
execute o seguinte comando:
docker run -e COMPONENTS='google-cloud-cli-cbt google-cloud-cli-kpt' \
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version
Para instalar os pacotes apt-packages curl
e gcc
enquanto a imagem do Docker está sendo executada,
execute o seguinte comando:
docker run -e APT_PACKAGES='curl gcc' \
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version
Imagens baseadas em Alpine
Para instalar outros componentes para imagens baseadas em Alpine, crie um Dockerfile
que usa a imagem cloud-sdk
como a imagem base.
Por exemplo, para adicionar os componentes kubectl
e app-engine-java
:
- Crie o Dockerfile como:
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
- Crie a imagem executando o seguinte comando:
docker build -t my-cloud-sdk-docker:alpine .
Para imagens baseadas em Alpine, você precisa instalar dependências de outros os componentes manualmente.
Migração para a imagem :stable
Se você estiver usando as imagens :latest
, :slim
, :emulators
, :alpine
e
:debian_component_based
do Docker, recomendamos migrar para
a imagem :stable
baseada no Debian para um tamanho de imagem menor e correções de segurança
melhores. Para acessar as etapas de migração para a imagem :stable
, consulte
Migrando para a imagem :stable
.
Como receber suporte para imagens
As imagens hospedadas no Artifact Registry fornecem instalações totalmente funcionais da CLI do Google Cloud. Se você encontrar bugs ou problemas relacionados às imagens Docker, crie um tíquete de suporte.
Quando você precisar de uma imagem com componentes, pacotes ou ferramentas adicionais, poderá crie sua própria camada de imagem sobre a Imagem do Docker da Google Cloud CLI.
Solução de problemas
O que fazer se você encontrar um erro failed to fetch <image-tag>
durante a extração da imagem Docker?
Se você receber um erro failed to fetch <image-tag>
ao tentar extrair uma
imagem do Docker da CLI do Google Cloud, provavelmente está tentando buscar uma tag
de imagem que foi descontinuada e removida. Verifique as
opções de imagem do Docker para conferir as opções de imagem do Docker disponíveis
e migre para uma das tags compatíveis.
Quais são os casos de uso em que não é possível estender diretamente o Docker :stable
imagem para ajudar no seu fluxo de trabalho atual?
A tabela a seguir lista os casos de uso em que não é possível estender diretamente os
:stable
para se adequar ao seu fluxo de trabalho e lista as opções de correção:
Casos de uso | Opções de correção |
---|---|
Os componentes app-engine (usados na imagem do Docker :latest ou :debian_component_based ) não são compatíveis com o Debian 12. |
Crie sua própria imagem a partir de uma imagem compatível do Debian (Debian 11) para instalar os componentes app-engine . |
Pacotes de terceiros, como docker ou docker-buildx, não estão incluídos na imagem :stable |
Se você precisar desses pacotes de terceiros, crie sua própria imagem ou instale-os manualmente na imagem do Docker :stable . |
O que fazer se o verificador encontrar vulnerabilidades nas imagens do Docker?
As imagens Docker da CLI do Google Cloud são hospedadas no Artifact Registry. As imagens são verificadas diariamente, e as vulnerabilidades e exposições comuns (CVEs) são mitigadas antes de cada nova versão do gcloud. No entanto, se o scanner detectar vulnerabilidades nas imagens do Docker da CLI do Google Cloud que não forem resolvidas, você poderá enviar um bug que inclua as seguintes informações:
- O tipo de vulnerabilidade.
- O local exato na imagem.
As vulnerabilidades nas imagens de base do SO são tratadas apenas para garantir que o As imagens Docker do Google Cloud CLI usam versões recentes e estáveis do Debian ou Alpine Linux