Se estiver a usar as imagens do Docker :latest
, :alpine
, :emulators
, :latest
, :slim
e :debian_component_based
, recomendamos que migre para a imagem :stable
baseada no Debian para ter um tamanho de imagem mais pequeno e correções de segurança
melhoradas. Para fazer a transição para a utilização da imagem :stable
, pode
estender a :stable
imagem do Docker
para a imagem baseada no Debian que está a usar.
Em alguns casos (ou seja, instalar dependências incompatíveis mais antigas, como o python2 ou
jdks mais antigos, etc.), a extensão da imagem :stable
nem sempre é viável. Nesse caso, pode ter de criar o seu próprio Dockerfile.
Expandir a imagem de Docker :stable
Pode usar a imagem de Docker :stable
como uma imagem base e instalar componentes adicionais e pacotes apt para a expandir para as outras imagens de Docker baseadas no Debian (ou seja, :latest
, :emulators
e :slim
). Para expandir a imagem de Docker :stable
, podemos fazer uma das seguintes ações:
- Expandir a imagem base
:stable
personalizando-a no momento da execução - Estender a imagem base
:stable
criando o seu próprio Dockerfile
Estender a :stable
imagem base personalizando-a no momento da execução
Pode expandir a imagem do :stable
Docker para usar como imagem :latest
, :emulators
ou :slim
, personalizando-a no tempo de execução.
Personalize a :latest
imagem
Execute o seguinte comando docker run
para estender a imagem :stable
do Docker para a imagem :latest
do Docker no tempo de execução:
$ 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
Personalize a :emulators
imagem
Pode executar o seguinte comando para estender a imagem do :stable
Docker
para a imagem do :emulators
Docker no tempo 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
Personalize a :slim
imagem
Pode estender a imagem de :stable
Docker como a imagem de :slim
Docker executando o seguinte 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
Estender a imagem :stable
com a configuração de compilação
Pode usar os seus próprios ficheiros de configuração de compilação personalizados para estender a imagem do Docker e instalar pacotes ou componentes adicionais.:stable
Por exemplo, se quiser expandir a sua imagem do :stable
docker para instalar os pacotes python3-google-auth
e python3-requests
, e instalar o componente pubsub emulator
, pode usar o seguinte ficheiro de configuração de compilação.
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 :stable
imagem base criando o seu próprio Dockerfile
Pode expandir a imagem do :stable
Docker criando o seu próprio ficheiro
Dockerfile com a imagem :stable
como imagem base e, em seguida, criar a imagem do
Docker com o comando docker build
.
Crie a sua própria :latest
imagem
Para converter a imagem :stable
na imagem :latest
, faça o seguinte:
Crie o seu próprio Dockerfile a partir de
:stable
instalando os componentes e os 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 \ 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
Crie o ficheiro Docker para obter a sua própria
:latest
imagem de Docker:$ docker build -t my-cloud-sdk-docker:latest .
Crie a sua própria :emulators
imagem
Para converter a imagem :stable
na imagem :emulators
, faça o seguinte:
Crie o Dockerfile com os componentes e os pacotes necessários da seguinte forma:
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
Crie o Dockerfile executando o comando:
$ docker build -t my-cloud-sdk-docker:emulators .
Crie a sua própria :slim
imagem
Para converter a imagem :stable
na imagem :slim
, faça o seguinte:
Crie um Dockerfile com
:stable
como imagem 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
Crie o Dockerfile executando o seguinte comando:
$ docker build -t my-cloud-sdk-docker:slim .