Se você estiver usando as imagens do Docker :latest, :alpine, :emulators, :latest, :slim e :debian_component_based, recomendamos migrar para a imagem :stable baseada no Debian para ter um tamanho menor da imagem e correções de segurança aprimoradas. Para fazer a transição para o uso da imagem :stable, você pode
estender a imagem Docker :stable
para a imagem baseada no Debian que você está usando.
Em alguns casos, como a instalação de dependências incompatíveis mais antigas, como o Python 2 ou JDKs mais antigos, estender a imagem :stable nem sempre é possível. Nesse caso, talvez seja necessário criar seu próprio Dockerfile.
Como estender a imagem Docker :stable
Você pode usar a imagem Docker :stable como uma imagem de base e instalar outros componentes e pacotes apt para estendê-la às outras imagens Docker baseadas no Debian, como :latest, :emulators e :slim. Para estender a imagem Docker :stable, faça uma destas ações:
- Estender a imagem de base
:stablepersonalizando no ambiente de execução - Estender a imagem de base
:stablecriando seu próprio Dockerfile
Estender a imagem de base :stable personalizando no ambiente de execução
Você pode estender a imagem Docker :stable para usar como imagem :latest, :emulators ou :slim personalizando-a no ambiente de execução.
Personalizar para a imagem :latest
Execute o comando docker run a seguir para estender a imagem Docker :stable para a imagem Docker :latest no ambiente de execução:
$ docker run -e APT_PACKAGES='curl python3-crcmod 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 para a imagem :emulators
Execute o comando a seguir para estender a imagem Docker :stable para a imagem Docker :emulators no ambiente de execução:
$ 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 para a imagem :slim
Você pode estender a imagem Docker :stable como a imagem Docker :slim executando o comando docker run a seguir:
$ docker run -e APT_PACKAGES='curl gcc python3-crcmod python3-pip lsb-release openssh-client git gnupg' \
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version
Estender a imagem :stable com a configuração do build
Você pode usar seus próprios arquivos de configuração de build
personalizados para estender a imagem do Docker :stable e instalar outros pacotes
ou componentes. Por exemplo, se você quiser estender a imagem do Docker :stable para instalar os pacotes python3-google-auth e python3-requests e instalar o componente pubsub emulator, use o arquivo de configuração de build a seguir.
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'
Estender a imagem de base :stable criando seu próprio Dockerfile
Você pode estender a imagem Docker :stable criando seu próprio Dockerfile com a imagem :stable como imagem de base e, em seguida, criar a imagem Docker com o comando docker build.
Criar sua própria imagem :latest
Para converter a imagem :stable na imagem :latest, faça o seguinte:
Crie seu próprio Dockerfile em
:stableinstalando os componentes e pacotes necessários: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 \ 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 \ kubectlCrie o Dockerfile para ter sua própria imagem Docker
:latest:$ docker build -t my-cloud-sdk-docker:latest .
Criar sua própria imagem :emulators
Para converter a imagem :stable na imagem :emulators, faça o seguinte:
Crie o Dockerfile com os componentes e pacotes necessários como:
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}-0Crie o Dockerfile executando o comando:
$ docker build -t my-cloud-sdk-docker:emulators .
Criar sua própria imagem :slim
Para converter a imagem :stable na imagem :slim, faça o seguinte:
Crie um Dockerfile usando
:stablecomo imagem 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 \ lsb-release \ openssh-client \ git \ make \ gnupgCrie o Dockerfile executando o comando a seguir:
$ docker build -t my-cloud-sdk-docker:slim .