Installazione dell'immagine Docker di Google Cloud CLI

L'immagine Docker di Google Cloud CLI ti consente di eseguire il pull di una versione specifica gcloud CLI come immagine Docker Artifact Registry ed eseguire rapidamente Comandi Google Cloud CLI in un container isolato e configurato correttamente.

L'immagine Docker di Google Cloud CLI è gcloud CLI installata in cima a un'immagine Debian o alpina. Le immagini Docker dell'interfaccia a riga di comando Google Cloud consentono di utilizzare gcloud e i relativi componenti in bundle senza dover installare manualmente gcloud sulla tua macchina locale.

Opzioni immagine Docker

Esistono sei immagini Docker di Google Cloud CLI. Ti consigliamo di installare la seguente immagine stabile:

  • :stable, :VERSION-stable: immagine predefinita, più piccola (basata su Debian) con un con gcloud standard.

Se vuoi utilizzare un'immagine basata su Alpine, puoi installare la seguente immagine:

  • :alpine, :VERSION-alpine: immagine più piccola (basata sulle Alpi) senza ulteriori componenti aggiuntivi installati. Questa immagine supporta Linux/arm.

Se vuoi immagini con pacchetti aggiuntivi o gcloud componenti preinstallati, puoi installare una delle seguenti opzioni:

  • :emulators, :VERSION-emulators: immagine più piccola (basata su Debian) con emulatore sono preinstallati.
  • :latest, :VERSION: immagine grande (basata su Debian) con componenti aggiuntivi sono preinstallate.
  • :slim, :VERSION-slim: immagine più piccola (basata su Debian) senza componenti preinstallati.
  • :debian_component_based, :VERSION-debian_component_based: grande (basato su Debian) immagine con componenti aggiuntivi preinstallati. A differenza di :latest che utilizzava i pacchetti deb, questa immagine utilizza il gestore dei componenti per installare i componenti. Questa immagine supporta linux/arm.

Componenti installati in ogni tag

Componente :stable :alpine :emulators :più recente :sottile :debian_component_based
Estensioni Go di App Engine x x
Appctl x
Strumento a riga di comando BigQuery x x x x x x
Python 3.9 in bundle x x x x x x
Strumento a riga di comando Bigtable x x
Emulatore Bigtable x x x
Emulatore di Cloud Datastore x x x
Emulatore Cloud Firestore x x
Emulatore Cloud Pub/Sub x x x
Emulatore di Spanner x x
Strumento a riga di comando di Cloud Storage x x x x x x
Librerie di base di Google Cloud CLI x x x x x x
Strumento di hash Google Cloud CRC32C x x x x x x
Kustomize x
Minikube x
Nomos CLI x
Assistente per l'estrazione dell'API On-Demand Scanning x x
Skaffold x
anthos-auth x
Comandi gcloud Alpha x x x x
Comandi gcloud beta x x x x
Estensioni Java gcloud app x
Estensioni Python di gcloud app x
gcloud app Python Extensions (Extra Libraries) x x
gke-gcloud-auth-plugin x x
kpt x x
kubectl x x

Utilizzare una versione specifica in produzione

L'immagine Docker :<tag> e i tag :<VERSION-tag> di Google Cloud CLI sono vengono ricostruite giornalmente per incorporare immediatamente eventuali correzioni di vulnerabilità delle immagini di base. Se utilizzi un tag non legato a una versione specifica, l'ambiente potrebbe che potrebbero subire le seguenti possibili modifiche:

  • Aggiornamenti delle versioni di Google Cloud SDK, che potrebbero modificare il comportamento dello strumento.
  • Aggiornamenti all'elenco dei componenti installati.

Per evitare possibili modifiche che provocano un errore, è consigliabile che il team di produzione utilizza uno dei seguenti elementi:

  • Un tag con controllo delle versioni con data, ad esempio :496.0.0-stable-20241015
  • Un hash immagine specifico come: gcr.io/google.com/cloudsdktool/google-cloud-cli@sha256:9c0efc06918d5405b13bfe4bb5ce1d98ea4695cc703446e9e0aa0ee8800622df

Dovresti anche aggiornare periodicamente le immagini per ottenere la versione più recente alla versione di gcloud.

Controlla la versione più recente di Google Cloud CLI e tutte le versioni precedenti di Google Cloud CLI.

Installazione di un'immagine Docker

L'immagine Docker è ospitata Artifact Registry con il seguente nome di repository: gcr.io/google.com/cloudsdktool/google-cloud-cli. Le immagini sono disponibili anche utilizzando i repository us.gcr.io, eu.gcr.io e asia.gcr.io.

  1. Per utilizzare l'immagine della release stabile di Google Cloud CLI, gcr.io/google.com/cloudsdktool/google-cloud-cli:stable, esegui il pull da Artifact Registry eseguendo questo comando:

    docker pull gcr.io/google.com/cloudsdktool/google-cloud-cli:489.0.0-stable
    
  2. Verifica l'installazione eseguendo:

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

    Se hai utilizzato il tag :stable mobile (che rimanda sempre alla release più recente), verifica l'installazione eseguendo il seguente comando:

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

Autenticazione con l'immagine Docker di Google Cloud CLI

Esegui l'autenticazione con l'immagine Docker di Google Cloud CLI eseguendo una delle seguenti comandi:

  • Autentica gcloud con le tue credenziali utente con gcloud auth login in esecuzione:

    docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud auth login
    
  • Se hai bisogno di autenticare applicazioni che utilizzano le API Google Cloud, Passa l'opzione --update-adc:

    docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud auth login --update-adc
    
  • Per impostare un progetto predefinito che venga selezionato ogni volta che apri il contenitore, esegui il seguente 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'
    

    Dopo l'autenticazione, le credenziali vengono conservate nel volume di gcloud-config container.

    Per verificare, elenca l'istanza Compute utilizzando le credenziali eseguendo contenitore con --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 vuoi eseguire l'autenticazione utilizzando un account di servizio, utilizza la auth/credential_file_override per impostare un percorso a una o un account di servizio montato. Quindi aggiorna la configurazione per leggere il servizio montato utilizzando la variabile di ambiente CLOUDSDK_CONFIG.

    Nell'esempio seguente, la configurazione mycloud ha auth/credential_file_override già impostato. La configurazione fa riferimento a un file del certificato presente all'interno del contenitore come mount del volume separato.

    $ 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
    

    Per saperne di più sull'impostazione delle variabili di ambiente, consulta quanto segue:

Installazione di componenti aggiuntivi

Puoi installare componenti aggiuntivi nell'immagine Docker di Google Cloud CLI. L'approccio per installare componenti aggiuntivi varia a seconda del tipo di immagine di base sottostante.

Immagini basate su Debian

Per impostazione predefinita, le immagini stabili (:stable e :VERSION-stable) non hanno componenti installati diversi da bq e gsutil. Per installare ulteriori per l'immagine stabile, procedi in uno dei seguenti modi:

Creare la tua immagine utilizzando il Dockerfile dell'immagine :stable

Per creare la tua immagine con componente aggiuntivo di :stable, puoi clonare cloud-sdk-docker alla directory GitHub e usa il comando docker build per creare l'immagine Docker :stable dal Dockerfile con INSTALL_COMPONENTS . Ad esempio, per aggiungere i componenti 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 .

Installazione di pacchetti o componenti aggiuntivi in fase di runtime

Se hai eseguito il pull dell'immagine Docker stable, puoi installare i seguenti componenti aggiuntivi durante il runtime:

  • gcloud utilizzando la variabile di ambiente COMPONENTS.
  • apt-packages utilizzando la variabile di ambiente APT_PACKAGES.

Ad esempio, se vuoi installare i componenti cbt e kpt in fase di runtime, puoi eseguire questo comando:

docker run -e COMPONENTS='google-cloud-cli-cbt google-cloud-cli-kpt' \
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version

Per installare i pacchetti apt curl e gcc durante l'esecuzione dell'immagine Docker, esegui il seguente comando:

docker run -e APT_PACKAGES='curl gcc' \
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version

Immagini basate sulle Alpi

Per installare componenti aggiuntivi per le immagini basate su Alpine, crea un Dockerfile che utilizzi l'immagine cloud-sdk come immagine di base.

Ad esempio, per aggiungere i componenti kubectl e app-engine-java:

  1. Crea il Dockerfile come segue:
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
  1. Crea l'immagine eseguendo questo comando:
docker build -t my-cloud-sdk-docker:alpine .

Per le immagini basate su alpino, devi installare le dipendenze di manualmente i componenti.

Migrazione all'immagine :stable in corso...

Se utilizzi :latest, :slim, :emulators, :alpine e :debian_component_based immagini Docker, ti consigliamo di eseguire la migrazione l'immagine :stable basata su Debian per immagini di dimensioni inferiori e maggiore sicurezza correzioni. Per la procedura di migrazione all'immagine :stable, consulta Eseguire la migrazione all'immagine :stable.

Ricevere assistenza per le immagini

Le immagini ospitate Artifact Registry fornire installazioni completamente funzionali di Google Cloud CLI. Se trovi bug o e problemi relativi alle immagini Docker, puoi creare ticket di assistenza.

Quando hai bisogno di un'immagine con componenti, pacchetti o strumenti aggiuntivi, puoi creare il tuo livello immagine sull'immagine Docker di Google Cloud CLI.

Risoluzione dei problemi

Cosa devi fare se viene visualizzato un errore failed to fetch <image-tag> durante il recupero dell'immagine Docker?

Se viene visualizzato un errore failed to fetch <image-tag> mentre cerchi di eseguire il pull di Immagine Docker di Google Cloud CLI, molto probabilmente stai tentando di recuperare un'immagine che è stato ritirato e rimosso. Controlla il Opzioni immagine Docker per le opzioni delle immagini Docker disponibili ed eseguire la migrazione a uno dei tag supportati.

Quali sono i casi d'uso in cui non puoi estendere direttamente l'immagine Docker :stable per supportare il tuo flusso di lavoro attuale?

La tabella seguente elenca i casi d'uso in cui non puoi estendere direttamente l'immagine Docker :stable in base al tuo flusso di lavoro e le opzioni per la correzione:

Casi d'uso Opzioni di correzione
I componenti app-engine (utilizzati nell'immagine Docker :latest o :debian_component_based) non sono compatibili con Debian 12. Crea la tua immagine da un'immagine Debian (Debian 11) compatibile per installare i componenti app-engine.
I pacchetti di terze parti come docker o docker-buildx non sono inclusi nell'immagine :stable Se hai bisogno di questi pacchetti di terze parti, crea la tua immagine o installali manualmente nell'immagine Docker :stable.

Cosa si deve fare se lo scanner rileva vulnerabilità nelle immagini Docker?

Le immagini Docker di Google Cloud CLI sono ospitate in Artifact Registry. Le immagini vengono scansionate quotidianamente e le vulnerabilità e le esposizioni comuni (CVE) vengono mitigato prima di ogni nuova release di gcloud. Tuttavia, se lo scanner ha rilevato delle vulnerabilità nel per le immagini Docker di Google Cloud CLI che non sono state risolte, segnalare un bug che include le seguenti informazioni:

  • Il tipo di vulnerabilità.
  • La posizione esatta nell'immagine.

Le vulnerabilità all'interno delle immagini del sistema operativo di base vengono gestite solo per garantire che Le immagini Docker di Google Cloud CLI utilizzano versioni stabili recenti di Debian Alpina Linux.