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 dimensioni inferiori 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. installazione di dipendenze incompatibili precedenti come python2 oJDK 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 aggiuntivi e pacchetti apt 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 - Estensione dell'immagine di base
:stable
mediante la creazione del tuo Dockerfile
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.
Esegui il seguente comando docker run
per estendere l'immagine Docker :stable
all'immagine Docker :latest
in fase di esecuzione:
# Running as latest
$ 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
# For iterative run
$ 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' \
-it gcr.io/google.com/cloudsdktool/google-cloud-cli:stable bash
Puoi eseguire il seguente comando per estendere l'immagine Docker :stable
all'immagine Docker :emulators
in fase di runtime:
# Running as emulators
$ 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
# For iterative run
$ 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' \
-it gcr.io/google.com/cloudsdktool/google-cloud-cli:stable bash
Puoi estendere l'immagine Docker :stable
come immagine Docker :slim
eseguendo il seguente comando docker run
:
# Running as slim
$ 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
# For iterative run
$ docker run -e APT_PACKAGES='curl gcc python3-crcmod python3-pip apt-transport-https lsb-release openssh-client git gnupg' \
-it gcr.io/google.com/cloudsdktool/google-cloud-cli:stable bash
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 creando l'immagine Docker con il comando docker build
.
Per convertire l'immagine :stable
in :latest
:
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
Crea il Dockerfile per ottenere la tua immagine Docker
:latest
:$ docker build -t my-cloud-sdk-docker:latest .
Per convertire l'immagine :stable
in :emulators
:
Crea il Dockerfile con i componenti e i pacchetti richiesti come:
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
Compila il Dockerfile eseguendo il comando:
$ docker build -t my-cloud-sdk-docker:emulators .
Per convertire l'immagine :stable
in :slim
:
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
Compila il Dockerfile eseguendo il seguente comando:
$ docker build -t my-cloud-sdk-docker:slim .