Migrar a la imagen :stable

Si usas las imágenes Docker :latest, :alpine, :emulators, :latest, :slim y :debian_component_based, te recomendamos que migres a la imagen :stable basada en Debian para reducir el tamaño de la imagen y mejorar la seguridad. Para cambiar a la imagen :stable, puedes extender la imagen Docker :stable a la imagen basada en Debian que estés usando.

En algunos casos (por ejemplo, al instalar dependencias antiguas incompatibles, como python2 o jdks anteriores), no siempre es posible ampliar la imagen :stable. En ese caso, puede que tengas que crear tu propio Dockerfile.

Extender la imagen de Docker :stable

Puedes usar la imagen Docker :stable como imagen base e instalar componentes y paquetes apt adicionales para convertirla en otras imágenes Docker basadas en Debian (por ejemplo, :latest, :emulators y :slim). Para ampliar la imagen Docker :stable, puedes hacer lo siguiente:

Extender la :stableimagen base personalizándola en el tiempo de ejecución

Puedes ampliar la imagen de :stable Docker para usarla como imagen de :latest, :emulators o :slim personalizándola en el tiempo de ejecución.

Personalizar la imagen :latest

Ejecuta el siguiente comando docker run para extender la imagen de Docker :stable a la imagen de Docker :latest en tiempo de ejecución:

$ 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
.

Personalizar la imagen :emulators

Puedes ejecutar el siguiente comando para ampliar la imagen Docker :stable a la imagen Docker :emulators en el tiempo de ejecución:

$ 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

Personalizar la imagen :slim

Puedes ampliar la imagen Docker :stable como la imagen Docker :slim ejecutando el siguiente 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
.

Extender la imagen :stable con la configuración de compilación

Puede usar sus propios archivos de configuración de compilación para ampliar la imagen de Docker :stable e instalar paquetes o componentes adicionales. Por ejemplo, si quieres ampliar tu imagen de Docker :stable para instalar los paquetes python3-google-auth y python3-requests, así como el componente pubsub emulator, puedes usar el siguiente archivo de configuración de compilación.

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'

Extender la imagen base :stable creando tu propio Dockerfile

Puedes ampliar la imagen Docker de :stable creando tu propio Dockerfile con la imagen de :stable como imagen base y, a continuación, crear la imagen Docker con el comando docker build.

Crear una imagen de :latest

Para convertir la imagen :stable en la imagen :latest, haz lo siguiente:

  1. Crea tu propio Dockerfile a partir de :stable instalando los componentes y paquetes necesarios:

    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. Compila el Dockerfile para obtener tu propia imagen Docker :latest:

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

Crear una imagen de :emulators

Para convertir la imagen :stable en la imagen :emulators, haz lo siguiente:

  1. Crea el Dockerfile con los componentes y paquetes necesarios de la siguiente manera:

    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. Compila el archivo Dockerfile ejecutando el comando:

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

Crear una imagen de :slim

Para convertir la imagen :stable en la imagen :slim, haz lo siguiente:

  1. Crea un Dockerfile con :stable como imagen 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. Compila el archivo Dockerfile ejecutando el siguiente comando:

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