Jika Anda menggunakan image Docker :latest
, :alpine
, :emulators
, :latest
, :slim
,
dan :debian_component_based
, sebaiknya Anda bermigrasi ke
image :stable
berbasis debian untuk ukuran image yang lebih kecil dan perbaikan keamanan
yang lebih baik. Untuk bertransisi menggunakan image :stable
, Anda dapat
memperluas image Docker :stable
ke image berbasis debian yang Anda gunakan.
Dalam beberapa kasus (yaitu menginstal dependensi lama yang tidak kompatibel seperti python2 atau
JDK lama, dll.), memperluas image :stable
tidak selalu memungkinkan. Dalam hal ini,
Anda mungkin harus mem-build Dockerfile Anda sendiri.
Memperluas image Docker :stable
Anda dapat menggunakan image Docker :stable
sebagai image dasar dan menginstal
komponen tambahan serta paket apt untuk memperluasnya ke
image Docker berbasis debian lainnya (yaitu :latest
, :emulators
, dan
:slim
). Untuk memperluas image Docker :stable
, kita dapat melakukan salah satu
hal berikut:
- Memperluas image dasar
:stable
dengan menyesuaikan saat runtime - Memperluas image dasar
:stable
dengan mem-build Dockerfile Anda sendiri
Memperluas image dasar :stable
dengan menyesuaikan saat runtime
Anda dapat memperluas image Docker :stable
untuk digunakan sebagai image :latest
, :emulators
,
atau :slim
dengan menyesuaikannya saat runtime.
Jalankan perintah docker run
berikut untuk memperluas image Docker :stable
ke dalam image Docker :latest
pada waktu proses berjalan:
# Running as latest
$ 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
# For iterative run
$ 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' \
-it gcr.io/google.com/cloudsdktool/google-cloud-cli:stable bash
Anda dapat menjalankan perintah berikut untuk memperluas image Docker :stable
ke dalam image Docker :emulators
saat runtime:
# Running as emulators
$ 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
# For iterative run
$ 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' \
-it gcr.io/google.com/cloudsdktool/google-cloud-cli:stable bash
Anda dapat memperluas image Docker :stable
sebagai image Docker :slim
dengan
menjalankan perintah docker run
berikut:
# Running as slim
$ 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
# For iterative run
$ docker run -e APT_PACKAGES='curl gcc python3-crcmod python3-pip apt-transport-https lsb-release openssh-client git gnupg' \
-it gcr.io/google.com/cloudsdktool/google-cloud-cli:stable bash
Memperluas image dasar :stable
dengan mem-build Dockerfile Anda sendiri
Anda dapat memperluas image Docker :stable
dengan membuat Dockerfile Anda sendiri dengan image :stable
sebagai image dasar, lalu mem-build image Docker dengan perintah docker build
.
Untuk mengonversi gambar :stable
menjadi gambar :latest
, lakukan langkah-langkah berikut:
Buat Dockerfile Anda sendiri dari
:stable
dengan menginstal komponen dan paket yang diperlukan: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
Build Dockerfile untuk mendapatkan image Docker
:latest
Anda sendiri:$ docker build -t my-cloud-sdk-docker:latest .
Untuk mengonversi gambar :stable
menjadi gambar :emulators
, lakukan langkah-langkah berikut:
Buat Dockerfile dengan komponen dan paket yang diperlukan sebagai:
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
Build Dockerfile dengan menjalankan perintah:
$ docker build -t my-cloud-sdk-docker:emulators .
Untuk mengonversi gambar :stable
menjadi gambar :slim
, lakukan langkah-langkah berikut:
Buat Dockerfile menggunakan
:stable
sebagai image dasar: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
Build Dockerfile dengan menjalankan perintah berikut:
$ docker build -t my-cloud-sdk-docker:slim .