Migrazione all'immagine :stable

Se utilizzi le immagini Docker :latest, :alpine, :emulators, :latest, :slim e :debian_component_based, ti consigliamo di eseguire la migrazione all'immagine :stable basata su Debian per una dimensione dell'immagine più piccola e correzioni di sicurezza migliorate. Per passare all'utilizzo dell'immagine :stable, puoi estendere l'immagine Docker :stable all'immagine basata su Debian che stai utilizzando.

In alcuni casi (ad es. l'installazione di dipendenze incompatibili precedenti come python2 o jdk precedenti e così via), l'estensione dell'immagine :stable non è sempre fattibile. In questo caso, potresti dover creare il tuo Dockerfile.

Estensione dell'immagine Docker :stable

Puoi utilizzare l'immagine Docker :stable come immagine di base e installare componenti e pacchetti apt aggiuntivi per estenderla alle altre immagini Docker basate su Debian (ad es. :latest, :emulators e :slim). Per estendere l'immagine Docker :stable, puoi eseguire una delle seguenti operazioni:

Estensione dell'immagine di base :stable mediante la personalizzazione in fase di runtime

Puoi estendere l'immagine Docker :stable da utilizzare come immagine :latest, :emulators o :slim personalizzandola in fase di runtime.

Personalizza l'immagine di :latest

Esegui questo comando docker run per estendere l'immagine Docker :stable nell'immagine Docker :latest in fase di runtime:

$ docker run -e APT_PACKAGES='curl python3-crcmod apt-transport-https lsb-release openssh-client git make gnupg' \ -e COMPONENTS='google-cloud-cli-datastore-emulator google-cloud-cli-pubsub-emulator google-cloud-cli-bigtable-emulator google-cloud-cli-firestore-emulator google-cloud-cli-spanner-emulator google-cloud-cli-cbt google-cloud-cli-kpt google-cloud-cli-local-extract google-cloud-cli-gke-gcloud-auth-plugin kubectl' \ gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version 

Personalizza l'immagine di :emulators

Puoi eseguire questo comando per estendere l'immagine Docker :stable nell'immagine Docker :emulators in fase di runtime:

$ docker run -e APT_PACKAGES='curl python3-crcmod lsb-release gnupg bash' \ -e COMPONENTS='google-cloud-cli-datastore-emulator google-cloud-cli-pubsub-emulator google-cloud-cli-bigtable-emulator google-cloud-cli-firestore-emulator google-cloud-cli-spanner-emulator' \ gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version 

Personalizza l'immagine di :slim

Puoi estendere l'immagine Docker :stable come immagine Docker :slim eseguendo il seguente comando docker run:

$ docker run -e APT_PACKAGES='curl gcc python3-crcmod python3-pip apt-transport-https lsb-release openssh-client git gnupg' \ gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version 

Estensione dell'immagine :stable con la configurazione della build

Puoi utilizzare i tuoi file di configurazione della build personalizzati per estendere l'immagine Docker :stable e installare pacchetti o componenti aggiuntivi. Ad esempio, se vuoi estendere l'immagine Docker :stable per installare i pacchetti python3-google-auth e python3-requests e installare il componente pubsub emulator, puoi utilizzare il seguente file di configurazione della build.

steps:   - id: 'extend-stable'     name: gcr.io/google.com/cloudsdktool/google-cloud-cli:499.0.0-stable     args:       - gcloud       - version     env:       - 'APT_PACKAGES=python3-google-auth python3-requests'       - 'COMPONENTS=google-cloud-cli-pubsub-emulator' 

Estendere l'immagine di base :stable creando il tuo Dockerfile

Puoi estendere l'immagine Docker :stable creando il tuo Dockerfile con l'immagine :stable come immagine di base e poi creare l'immagine Docker con il comando docker build.

Crea la tua immagine :latest

Per convertire l'immagine :stable nell'immagine :latest:

  1. Crea il tuo Dockerfile da :stable installando i componenti e i pacchetti richiesti:

    FROM docker:27.1.1 as static-docker-source  FROM gcr.io/google.com/cloudsdktool/google-cloud-cli:stable COPY --from=static-docker-source /usr/local/bin/docker /usr/local/bin/docker COPY --from=static-docker-source /usr/local/libexec/docker/cli-plugins/docker-buildx /usr/local/libexec/docker/cli-plugins/docker-buildx  RUN apt-get update -qqy && apt-get -qqy upgrade && apt-get install -qqy \       curl \       python3-crcmod \       apt-transport-https \       lsb-release \       openssh-client \       git \       make \       gnupg && \    export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \    export CLOUD_SDK_VERSION=$(gcloud version | grep "Google Cloud SDK" | grep -oE '[^ ]+$') && \    echo "deb https://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" > /etc/apt/sources.list.d/google-cloud-sdk.list && \    curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && \    apt-get update && \    apt-get install -y google-cloud-cli-datastore-emulator=${CLOUD_SDK_VERSION}-0 \       google-cloud-cli-pubsub-emulator=${CLOUD_SDK_VERSION}-0 \       google-cloud-cli-bigtable-emulator=${CLOUD_SDK_VERSION}-0 \       google-cloud-cli-firestore-emulator=${CLOUD_SDK_VERSION}-0 \       google-cloud-cli-spanner-emulator=${CLOUD_SDK_VERSION}-0 \       google-cloud-cli-cbt=${CLOUD_SDK_VERSION}-0 \       google-cloud-cli-kpt=${CLOUD_SDK_VERSION}-0 \       google-cloud-cli-local-extract=${CLOUD_SDK_VERSION}-0 \       google-cloud-cli-gke-gcloud-auth-plugin=${CLOUD_SDK_VERSION}-0 \       kubectl 
  2. Crea il Dockerfile per ottenere la tua immagine Docker :latest:

    $ docker build -t my-cloud-sdk-docker:latest . 

Crea la tua immagine :emulators

Per convertire l'immagine :stable nell'immagine :emulators:

  1. Crea il Dockerfile con i componenti e i pacchetti richiesti come segue:

    FROM gcr.io/google.com/cloudsdktool/google-cloud-cli:stable  RUN apt-get update -qqy && apt-get -qqy upgrade && apt-get install -qqy \       curl \       python3-crcmod \       lsb-release \       gnupg \       bash && \    export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \    export CLOUD_SDK_VERSION=$(gcloud version | grep "Google Cloud SDK" | grep -oE '[^ ]+$') && \    echo "deb https://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" > /etc/apt/sources.list.d/google-cloud-sdk.list && \    curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && \    apt-get update && \    apt-get install -y google-cloud-cli-datastore-emulator=${CLOUD_SDK_VERSION}-0 \       google-cloud-cli-pubsub-emulator=${CLOUD_SDK_VERSION}-0 \       google-cloud-cli-bigtable-emulator=${CLOUD_SDK_VERSION}-0 \       google-cloud-cli-firestore-emulator=${CLOUD_SDK_VERSION}-0 \       google-cloud-cli-spanner-emulator=${CLOUD_SDK_VERSION}-0 
  2. Crea il Dockerfile eseguendo il comando:

    $ docker build -t my-cloud-sdk-docker:emulators . 

Crea la tua immagine :slim

Per convertire l'immagine :stable nell'immagine :slim:

  1. Crea un Dockerfile utilizzando :stable come immagine di base:

    FROM docker:27.1.1 as static-docker-source  FROM gcr.io/google.com/cloudsdktool/google-cloud-cli:stable COPY --from=static-docker-source /usr/local/bin/docker /usr/local/bin/docker COPY --from=static-docker-source /usr/local/libexec/docker/cli-plugins/docker-buildx /usr/local/libexec/docker/cli-plugins/docker-buildx  RUN apt-get update -qqy && apt-get -qqy upgrade && apt-get install -qqy \       curl \       python3-crcmod \       apt-transport-https \       lsb-release \       openssh-client \       git \       make \       gnupg 
  2. Crea il Dockerfile eseguendo questo comando:

    $ docker build -t my-cloud-sdk-docker:slim .