Si vous utilisez les images Docker :latest
, :alpine
, :emulators
, :latest
, :slim
et :debian_component_based
, nous vous recommandons de migrer vers l'image :stable
basée sur Debian pour réduire la taille de l'image et améliorer les correctifs de sécurité. Pour passer à l'image :stable
, vous pouvez étendre l'image Docker :stable
à l'image basée sur Debian que vous utilisez.
Dans certains cas (par exemple, lors de l'installation d'anciennes dépendances incompatibles telles que python2 ou d'anciens JDK, etc.), l'extension de l'image :stable
n'est pas toujours possible. Dans ce cas, vous devrez peut-être créer votre propre Dockerfile.
Étendre l'image Docker :stable
Vous pouvez utiliser l'image Docker :stable
comme image de base et installer des composants et des paquets apt supplémentaires pour l'étendre aux autres images Docker basées sur Debian (:latest
, :emulators
et :slim
, par exemple). Pour étendre l'image Docker :stable
, vous pouvez procéder comme suit:
- Étendre l'image de base
:stable
en la personnalisant au moment de l'exécution - Étendre l'image de base
:stable
en créant votre propre fichier Dockerfile
Étendre l'image de base :stable
en la personnalisant au moment de l'exécution
Vous pouvez étendre l'image Docker :stable
pour l'utiliser comme image :latest
, :emulators
ou :slim
en la personnalisant au moment de l'exécution.
Exécutez la commande docker run
suivante pour étendre l'image Docker :stable
dans l'image Docker :latest
au moment de l'exécution:
# 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
Vous pouvez exécuter la commande suivante pour étendre l'image Docker :stable
dans l'image Docker :emulators
au moment de l'exécution:
# 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
Vous pouvez étendre l'image Docker :stable
en tant qu'image Docker :slim
en exécutant la commande docker run
suivante:
# 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
Étendre l'image de base :stable
en créant votre propre Dockerfile
Vous pouvez étendre l'image Docker :stable
en créant votre propre fichier Dockerfile avec l'image :stable
comme image de base, puis en créant l'image Docker avec la commande docker build
.
Pour convertir l'image :stable
en image :latest
, procédez comme suit:
Créez votre propre Dockerfile à partir de
:stable
en installant les composants et les packages requis: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
Créez le fichier Dockerfile pour obtenir votre propre image Docker
:latest
:$ docker build -t my-cloud-sdk-docker:latest .
Pour convertir l'image :stable
en image :emulators
, procédez comme suit:
Créez le fichier Dockerfile avec les composants et les packages requis comme suit:
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
Créez le Dockerfile en exécutant la commande suivante:
$ docker build -t my-cloud-sdk-docker:emulators .
Pour convertir l'image :stable
en image :slim
, procédez comme suit:
Créez un fichier Dockerfile à l'aide de
:stable
comme image de 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
Créez le Dockerfile en exécutant la commande suivante:
$ docker build -t my-cloud-sdk-docker:slim .