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'utilisation de 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'anciennes JDK, etc.), il n'est pas toujours possible d'étendre l'image :stable
. Dans ce cas, vous devrez peut-être créer votre propre fichier Dockerfile.
Étendre l'image Docker :stable
Vous pouvez utiliser l'image Docker :stable
comme image de base et installer des composants et des packages apt supplémentaires pour l'étendre aux autres images Docker basées sur Debian (par exemple, :latest
, :emulators
et :slim
). Pour étendre l'image Docker :stable
, vous pouvez effectuer l'une des opérations suivantes :
- É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 lors 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.
Personnaliser l'image :latest
Exécutez la commande docker run
suivante pour étendre l'image Docker :stable
à l'image Docker :latest
au moment de l'exécution :
$ 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
Personnaliser l'image :emulators
Vous pouvez exécuter la commande suivante pour étendre l'image Docker :stable
dans l'image Docker :emulators
au moment de l'exécution :
$ 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
Personnaliser l'image :slim
Vous pouvez étendre l'image Docker :stable
en tant qu'image Docker :slim
en exécutant la commande docker run
suivante :
$ 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
Étendre l'image :stable
avec la configuration de compilation
Vous pouvez utiliser vos propres fichiers de configuration de compilation personnalisés pour étendre l'image Docker :stable
et installer des packages ou des composants supplémentaires. Par exemple, si vous souhaitez étendre votre image Docker :stable
pour installer les packages python3-google-auth
et python3-requests
, et installer le composant pubsub emulator
, vous pouvez utiliser le fichier de configuration de compilation suivant.
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'
Étendre l'image de base :stable
en créant votre propre fichier 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
.
Créer votre propre :latest
Image
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 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 .
Créer votre propre :emulators
Image
Pour convertir l'image :stable
en image :emulators
, procédez comme suit :
Créez le fichier Dockerfile avec les composants et 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 fichier Dockerfile en exécutant la commande suivante :
$ docker build -t my-cloud-sdk-docker:emulators .
Créer votre propre :slim
Image
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 fichier Dockerfile en exécutant la commande suivante :
$ docker build -t my-cloud-sdk-docker:slim .