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 Docker da Google Cloud CLI é a CLI gcloud instalada no topo de uma imagem Debian ou Alpine. O As imagens do Docker da Google Cloud CLI permitem o uso do gcloud os componentes em pacotes sem precisar instalar manualmente gcloud na sua máquina local.
Opções de imagem do Docker
Há seis imagens do Docker do Google Cloud CLI. Recomendamos que você instale esta imagem estável:
:stable
,:VERSION-stable
: imagem padrão, menor (baseada no Debian) com uma instalação padrão do gcloud.
Para usar uma imagem baseada em Alpine, instale o seguinte imagem:
:alpine
,:VERSION-alpine
: imagem menor (baseada nos Alpine) sem adição componentes instalados. Essa imagem oferece suporte a linux/arm.
Se você quiser imagens com pacotes adicionais ou gcloud componentes pré-instalados, é possível instalar uma das seguintes opções:
:emulators
,:VERSION-emulators
: imagem menor (baseada em Debian) com 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 de:latest
, que pacotes deb usados, 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 | |||||
Assistente de pacote do módulo Go do Artifact Registry | ||||||
Ferramenta de linha de comando do BigQuery | x | x | x | x | x | x |
Pacote do Python 3.9 | 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 | |||
Proxy do Cloud Run | ||||||
Cloud SQL Proxy | ||||||
Emulador do Spanner | x | x | ||||
Ferramenta de migração do Spanner | ||||||
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 |
Auxiliar de credenciais do Docker do Google Container Registry | ||||||
Kustomize | x | |||||
Streaming de registros | ||||||
Minikube | x | |||||
CLI do Nomos | x | |||||
Auxiliar de extração da API On-Demand Scanning | x | x | ||||
Skaffold | x | |||||
Ferramentas do Terraform | ||||||
anthos-auth | x | |||||
config-connector | ||||||
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 gcloud app (bibliotecas extras) | x | x | ||||
gke-gcloud-auth-plugin | x | x | ||||
kpt | x | x | ||||
kubectl | x | x | ||||
kubectl-oidc | ||||||
pkg |
Usar uma versão específica na produção
Se você usar uma tag que não esteja vinculada a uma versão específica, talvez seu ambiente as seguintes alterações interruptivas:
- 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, recomendamos que sua produção
de nuvem usam uma imagem com controle de versão, como :489.0.0-stable
, que você atualiza
periodicamente.
Verifique a versão mais recente da Google Cloud CLI e todas as versões anteriores da CLI do Google Cloud.
instalar uma imagem do Docker
A imagem Docker está hospedada em
Artifact Registry (em inglês)
pelo 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 Google Cloud CLI,
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable
, extraia-o 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 autenticar com a imagem Docker da Google Cloud CLI
Autentique-se com a imagem Docker do Google Cloud CLI executando um dos seguintes comandos:
Autentique a 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 o serviço ativado 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 instalar componentes complementares
É possível instalar outros componentes na imagem do Docker da Google Cloud CLI. O para instalar componentes adicionais varia de acordo com a tipo de imagem 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 mais
para a imagem estável, siga um destes procedimentos:
- Como criar sua própria imagem usando o Dockerfile da imagem
:stable
: instale pacotes que não estão disponíveis diretamente peloapt-get
, ou seja, o mecanismo do 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 o componente extra de :stable
, clone
o comando cloud-sdk-docker
do GitHub e usar o comando docker build
para criar
a imagem Docker :stable
do Dockerfile com o 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
, poderá instalar os seguintes
componentes adicionais durante a execução:
- componentes da gcloud usando o ambiente
COMPONENTS
variável. - 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 apt-packages curl
e gcc
ao executar a imagem do Docker,
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
- Execute o comando a seguir para criar a imagem:
docker build -t my-cloud-sdk-docker:alpine .
Para imagens baseadas em Alpine, você precisa instalar dependências de outros os componentes manualmente.
Migrando para a imagem :stable
Se você estiver usando :latest
, :slim
, :emulators
, :alpine
e
:debian_component_based
imagens Docker, recomendamos a migração para
a imagem :stable
baseada no Debian para um tamanho de imagem menor e maior segurança
e correções. 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 (em inglês) instalações totalmente funcionais da Google Cloud CLI. Se você encontrar bugs ou problemas relacionados às imagens do Docker, crie um tíquete de suporte.
Quando precisar de uma imagem com componentes, pacotes ou ferramentas adicionais, você 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ê receber um erro failed to fetch <image-tag>
ao extrair a imagem do Docker?
Se você receber um erro failed to fetch <image-tag>
ao tentar extrair um
Imagem do Docker da Google Cloud CLI, você provavelmente está tentando buscar uma imagem
que foi descontinuada e removida. Consulte a
Opções de imagem do Docker para opções de imagem do Docker disponíveis
e migrar 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 a
imagem do Docker :stable
para se ajustar ao seu fluxo de trabalho e 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, na sigla em inglês) são atenuados antes de cada nova versão da gcloud. No entanto, se seu scanner detectaram vulnerabilidades Imagens Docker do Google Cloud CLI que não forem resolvidas, é possível registrar um bug que inclui as seguintes informações:
- O tipo de vulnerabilidade.
- O local exato na imagem.
As vulnerabilidades nas imagens do SO de base são resolvidas apenas para garantir que as imagens do Docker da CLI do Google Cloud estejam usando versões estáveis e recentes do Debian ou do Alpine Linux.