Image Docker Google Cloud CLI memungkinkan Anda mengambil versi tertentu dari gcloud CLI sebagai image Docker dari Artifact Registry dan dengan cepat menjalankan perintah Google Cloud CLI dalam penampung yang diisolasi dan dikonfigurasi dengan benar.
Image Docker Google Cloud CLI adalah gcloud CLI yang diinstal di atas image Debian atau Alpine. Image Docker Google Cloud CLI memungkinkan penggunaan gcloud serta komponen yang dipaketkan tanpa harus menginstal gcloud secara manual di komputer lokal Anda.
Opsi image Docker
Ada enam image Docker Google Cloud CLI, dan semuanya akan menginstal alat command line gcloud
, gsutil
, dan bq
. Sebaiknya instal
gambar :stable
untuk lingkungan minimal. Anda juga dapat
menggunakan image stabil sebagai image dasar untuk deployment Anda sendiri yang memberi Anda
fleksibilitas untuk hanya menginstal komponen dan paket yang Anda perlukan dalam
image:
:stable
,:VERSION-stable
: Memberikan penginstalan gcloud dengan komponengsutil
danbq
. Image ini dibuat berdasarkan image dasar Debian 12 yang Disediakan Google terbaru. Image ini mendukung platformlinux/amd
danlinux/arm
. Untuk menginstal versi gcloud tertentu, gunakan tag:VERSION-stable
.
Jika ingin menggunakan image berbasis Alpine, Anda dapat menginstal image berikut:
:alpine
,:VERSION-alpine
: Mirip dengan stabil, tetapi dibuat berdasarkan image dasar Alpine 3.19 terbaru. Image ini mendukung platformlinux/amd
danlinux/arm
. Untuk menginstal versi gcloud tertentu, gunakan tag:VERSION-alpine
.
Jika menginginkan image dengan komponen atau paket tambahan yang telah diinstal sebelumnya, Anda dapat menginstal salah satu opsi berikut:
:emulators
,:VERSION-emulators
: Serupa dengan stabil, dengan penambahan semua komponen emulator. Image dibuat berdasarkan image dasar Debian 12 yang Disediakan Google terbaru dan menggunakan pengelola komponen untuk menginstal komponen. Image ini mendukung platformlinux/amd
danlinux/arm
. Untuk menginstal versi gcloud tertentu, gunakan tag:VERSION-emulators
.:latest
,:VERSION
: Mirip dengan stabil, dengan komponen tambahan (Daftar komponen yang diinstal dalam image tercantum di bawah) yang telah diinstal sebelumnya. Image ini dibuat berdasarkan image dasar Debian 12 yang Disediakan Google terbaru dan menggunakan paket deb untuk menginstal komponen. Untuk menginstal versi gcloud tertentu, gunakan tag:VERSION
.:slim
,:VERSION-slim
: Mirip dengan stabil, tetapi menyertakan paket pihak ketiga tambahan seperticurl
,python3-crcmod
,apt-transport-https
,lsb-release
,openssh-client
,git
,make
, dangnupg
. Image ini di-build berdasarkan image dasar Debian 12 yang Disediakan Google terbaru. Image ini mendukung platformlinux/amd
danlinux/arm
. Untuk menginstal versi gcloud tertentu, gunakan tag:VERSION-slim
.:debian_component_based
,:VERSION-debian_component_based
: Serupa dengan stabil, dengan komponen tambahan (Daftar komponen yang diinstal dalam image tercantum di bawah) yang telah diinstal sebelumnya. Image ini dibuat berdasarkan image dasar Debian 12 yang Disediakan Google terbaru dan menggunakan pengelola komponen untuk menginstal komponen. Image ini mendukung platformlinux/amd
danlinux/arm
. Untuk menginstal versi gcloud tertentu, gunakan tag:VERSION-debian_component_based
.
Menggunakan versi tertentu dalam produksi
Jika Anda menggunakan tag yang tidak terikat dengan versi gcloud tertentu, lingkungan Anda mungkin mengalami kemungkinan perubahan yang dapat menyebabkan error berikut:
- Update versi Google Cloud SDK, yang dapat mengubah perilaku alat.
- Update pada daftar komponen yang diinstal.
Untuk menghindari kemungkinan perubahan yang menyebabkan error, sebaiknya lingkungan produksi Anda menggunakan salah satu dari hal berikut:
- Tag dengan versi, seperti
:496.0.0-stable
- Hash gambar tertentu seperti:
gcr.io/google.com/cloudsdktool/google-cloud-cli@sha256:9c0efc06918d5405b13bfe4bb5ce1d98ea4695cc703446e9e0aa0ee8800622df
- Menghosting image di repositori Anda sendiri
Anda juga harus mengupdate image secara berkala untuk mendapatkan versi gcloud terbaru.
Periksa versi Google Cloud CLI terbaru dan semua versi Google Cloud CLI sebelumnya.
Komponen yang diinstal di setiap tag
Komponen | :stable | :alpine | :emulators | :latest | :slim | :debian_component_based |
---|---|---|---|---|---|---|
Ekstensi App Engine Go | x | x | ||||
Appctl | x | |||||
Alat Command Line BigQuery | x | x | x | x | x | x |
Python 3.9 yang Dipaketkan | x | x | x | x | x | x |
Alat Command Line Bigtable | x | x | ||||
Emulator Bigtable | x | x | x | |||
Emulator Cloud Datastore | x | x | x | |||
Emulator Cloud Firestore | x | x | ||||
Emulator Cloud Pub/Sub | x | x | x | |||
Emulator Spanner | x | x | ||||
Alat Command Line Cloud Storage | x | x | x | x | x | x |
Library Inti Google Cloud CLI | x | x | x | x | x | x |
Alat Hash CRC32C Google Cloud | x | x | x | x | x | x |
Kustomize | x | |||||
Minikube | x | |||||
Nomos CLI | x | |||||
Helper ekstraksi On-Demand Scanning API | x | x | ||||
Skaffold | x | |||||
anthos-auth | x | |||||
Perintah gcloud Alpha | x | x | x | x | ||
Perintah gcloud Beta | x | x | x | x | ||
Ekstensi Java gcloud app | x | |||||
Ekstensi Python gcloud app | x | |||||
Ekstensi Python aplikasi gcloud (Library Tambahan) | x | x | ||||
gke-gcloud-auth-plugin | x | x | ||||
kpt | x | x | ||||
kubectl | x | x |
Menginstal image Docker
Image Docker dihosting di
Artifact Registry
dengan nama repositori berikut:
gcr.io/google.com/cloudsdktool/google-cloud-cli
. Gambar juga tersedia
menggunakan repositori us.gcr.io
, eu.gcr.io
, dan asia.gcr.io
.
Untuk menggunakan image rilis Google Cloud CLI yang stabil,
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable
, ambil dari Artifact Registry dengan menjalankan perintah berikut:docker pull gcr.io/google.com/cloudsdktool/google-cloud-cli:489.0.0-stable
Anda juga dapat menggunakan hash image untuk mengambil image Docker tertentu dari repositori. Untuk mengambil gambar yang sama dari contoh sebelumnya (
:489.0.0-stable
) menggunakan hash gambar, jalankan perintah berikut:docker pull gcr.io/google.com/cloudsdktool/google-cloud-cli@sha256:589a0db8919614ef919dfd6ed89127211b4b6bf5ee6a2e2ce92abf33cbfe49d8
Verifikasi penginstalan dengan menjalankan:
docker run --rm gcr.io/google.com/cloudsdktool/google-cloud-cli:489.0.0-stable gcloud version
Jika Anda telah menggunakan tag
:stable
mengambang (yang selalu mengarah ke rilis terbaru), verifikasi penginstalan dengan menjalankan perintah berikut:docker run --rm gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version
Mengautentikasi dengan image Docker Google Cloud CLI
Lakukan autentikasi dengan image Docker Google Cloud CLI dengan menjalankan salah satu perintah berikut:
Lakukan autentikasi gcloud dengan kredensial pengguna Anda dengan menjalankan
gcloud auth login
:docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud auth login
Jika Anda perlu mengautentikasi aplikasi yang menggunakan Google Cloud API, teruskan opsi
--update-adc
:docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud auth login --update-adc
Untuk menetapkan project default yang dipilih setiap kali Anda membuka penampung, jalankan perintah berikut:
docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable /bin/bash -c 'gcloud auth login && gcloud config set project your-project'
Setelah Anda berhasil melakukan autentikasi, kredensial akan disimpan dalam volume
gcloud-config container
.Untuk memverifikasi, cantumkan instance komputasi menggunakan kredensial dengan menjalankan penampung dengan
--volumes-from
:docker run --rm --volumes-from gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud compute instances list --project your-project
Jika Anda ingin mengautentikasi menggunakan akun layanan, gunakan properti
auth/credential_file_override
untuk menetapkan jalur ke akun layanan yang dipasang. Kemudian, perbarui konfigurasi untuk membaca akun layanan yang dipasang menggunakan variabel lingkunganCLOUDSDK_CONFIG
.Dalam contoh berikut, konfigurasi
mycloud
memilikiauth/credential_file_override
yang sudah ditetapkan. Konfigurasi mengarah ke file sertifikat yang ada dalam penampung sebagai pemasangan volume terpisah.$ docker run -ti -e CLOUDSDK_CONFIG=/config/mygcloud \ -v `pwd`/mygcloud:/config/mygcloud \ -v `pwd`:/certs gcr.io/google.com/cloudsdktool/google-cloud-cli:stable /bin/bash bash-4.4# gcloud config list [auth] credential_file_override = /certs/svc_account.json bash-4.4# head -10 /certs/svc_account.json { "type": "service_account", "project_id": "project_id1", .... bash-4.4# gcloud projects list PROJECT_ID NAME PROJECT_NUMBER project_id1 GCPAppID 1071284184432
Untuk informasi selengkapnya tentang cara menetapkan variabel lingkungan, lihat hal berikut:
Menginstal komponen tambahan
Anda dapat menginstal komponen tambahan di image Docker Google Cloud CLI. Pendekatan untuk menginstal komponen tambahan bervariasi bergantung pada jenis gambar dasar yang mendasarinya.
Image berbasis Debian
Secara default, image stabil (:stable
dan :VERSION-stable
) tidak memiliki
komponen yang diinstal selain bq
dan gsutil
. Untuk menginstal komponen tambahan
untuk image stabil, lakukan salah satu hal berikut:
- Mem-build image Anda sendiri menggunakan Dockerfile image
:stable
: Instal paket yang tidak tersedia secara langsung melaluiapt-get
, yaitu mesin docker. - Menginstal paket atau komponen tambahan saat runtime: Sesuaikan image tanpa menghostingnya.
Mem-build image Anda sendiri menggunakan Dockerfile image :stable
Untuk mem-build image Anda sendiri dengan komponen tambahan dari :stable
, Anda dapat meng-clone direktori GitHub cloud-sdk-docker dan menggunakan perintah docker build
untuk mem-build image Docker :stable
dari Dockerfile dengan argumen INSTALL_COMPONENTS
. Misalnya, untuk menambahkan komponen datastore-emulator
:
# clone the GitHub docker directory
$ git clone https://github.com/GoogleCloudPlatform/cloud-sdk-docker.git
$ docker build --build-arg CLOUD_SDK_VERSION=<release_version> \
--build-arg INSTALL_COMPONENTS="google-cloud-cli-datastore-emulator=<release_version>-0" \
-t my-cloud-sdk-docker:stable .
Menginstal paket atau komponen tambahan saat runtime
Jika telah mengambil image Docker stable
, Anda dapat menginstal komponen tambahan
berikut selama runtime:
- komponen gcloud menggunakan variabel lingkungan
COMPONENTS
. - apt-packages menggunakan variabel lingkungan
APT_PACKAGES
.
Misalnya, jika ingin menginstal komponen cbt
dan kpt
saat runtime,
Anda dapat menjalankan perintah berikut:
docker run -e COMPONENTS='google-cloud-cli-cbt google-cloud-cli-kpt' \
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version
Untuk menginstal paket apt curl
dan gcc
saat menjalankan image Docker,
jalankan perintah berikut:
docker run -e APT_PACKAGES='curl gcc' \
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version
Image berbasis Alpine
Untuk menginstal komponen tambahan untuk image berbasis Alpine, buat Dockerfile
yang menggunakan image cloud-sdk
sebagai image dasar.
Misalnya, untuk menambahkan komponen kubectl
dan app-engine-java
:
- Buat Dockerfile sebagai:
FROM gcr.io/google.com/cloudsdktool/google-cloud-cli:alpine
RUN apk --update add gcompat openjdk8-jre
RUN gcloud components install app-engine-java kubectl
- Build image dengan menjalankan perintah berikut:
docker build -t my-cloud-sdk-docker:alpine .
Untuk image berbasis Alpine, Anda harus menginstal dependensi komponen tambahan secara manual.
Bermigrasi ke image :stable
Jika Anda menggunakan image Docker :latest
, :slim
, :emulators
, :alpine
, dan
:debian_component_based
, sebaiknya Anda bermigrasi ke
image :stable
berbasis Debian untuk mendapatkan ukuran image yang lebih kecil dan perbaikan keamanan
yang lebih baik. Untuk mengetahui langkah-langkah bermigrasi ke image :stable
, lihat
Bermigrasi ke image :stable
.
Mendapatkan dukungan untuk gambar
Image yang dihosting di Artifact Registry menyediakan penginstalan Google Cloud CLI yang berfungsi penuh. Jika menemukan bug atau masalah terkait image Docker, Anda dapat membuat tiket dukungan.
Jika memerlukan image dengan komponen, paket, atau alat tambahan, Anda dapat membuat lapisan image Anda sendiri di atas image Docker Google Cloud CLI.
Pemecahan masalah
Apa yang harus Anda lakukan jika melihat error failed to fetch <image-tag>
saat mengambil image Docker?
Jika Anda mendapatkan error failed to fetch <image-tag>
saat mencoba mengambil
image Docker Google Cloud CLI, kemungkinan besar Anda mencoba mengambil tag
image yang tidak digunakan lagi dan dihapus. Periksa
Opsi Image Docker untuk mengetahui Opsi image Docker yang tersedia
dan bermigrasi ke salah satu tag yang didukung.
Apa kasus penggunaan saat Anda tidak dapat langsung memperluas image Docker
:stable
untuk mendukung alur kerja Anda saat ini?
Tabel berikut mencantumkan kasus penggunaan saat Anda tidak dapat langsung memperluas
image docker :stable
agar sesuai dengan alur kerja Anda dan mencantumkan opsi untuk melakukan perbaikan:
Kasus penggunaan | Opsi Perbaikan |
---|---|
Komponen app-engine (digunakan dalam image Docker :latest atau :debian_component_based ) tidak kompatibel dengan Debian 12. |
Build image Anda sendiri dari image Debian (Debian 11) yang kompatibel untuk menginstal komponen app-engine . |
Paket pihak ketiga seperti docker atau docker-buildx tidak disertakan dalam image :stable |
Jika Anda memerlukan paket pihak ketiga ini, build image Anda sendiri atau instal paket ini di image Docker :stable secara manual. |
Apa yang harus Anda lakukan jika pemindai menemukan kerentanan dalam image docker?
Image Docker Google Cloud CLI dihosting di Artifact Registry. Image dipindai setiap hari dan kerentanan dan eksposur umum (CVE) dimitigasi sebelum setiap rilis gcloud baru. Namun, jika pemindai Anda telah mendeteksi kerentanan dalam image Docker Google Cloud CLI yang tidak terselesaikan, Anda dapat melaporkan bug yang menyertakan informasi berikut:
- Jenis kerentanan.
- Lokasi persis dalam gambar.
Kerentanan dalam image OS dasar hanya ditangani untuk memastikan bahwa image Docker Google Cloud CLI menggunakan rilis Debian atau Alpine Linux terbaru yang stabil.