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
:stableen la personnalisant au moment de l'exécution - Étendre l'image de base
:stableen 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
:stableen 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 \ kubectlCré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}-0Cré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
:stablecomme 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 \ gnupgCréez le fichier Dockerfile en exécutant la commande suivante :
$ docker build -t my-cloud-sdk-docker:slim .