Image dasar yang telah dikonfigurasi sebelumnya yang disediakan oleh Cloud Workstations hanya berisi lingkungan minimal dengan IDE, terminal Linux dasar, dan alat bahasa serta server sshd
. Untuk mempercepat
penyiapan lingkungan kasus penggunaan pengembangan tertentu, Anda dapat membuat image penampung
kustom yang memperluas image dasar ini untuk menginstal alat dan
dependensi secara otomatis serta menjalankan skrip otomatisasi.
Untuk image container kustom, sebaiknya siapkan pipeline untuk mem-build ulang image ini secara otomatis saat image dasar Cloud Workstations diupdate, selain menjalankan alat pemindaian container seperti Artifact Analysis untuk memeriksa dependensi tambahan yang Anda tambahkan. Anda bertanggung jawab untuk memelihara dan mengupdate paket dan dependensi kustom yang ditambahkan ke image kustom.
Sebelum memulai
Anda memerlukan mesin dengan alat untuk mem-build image container seperti Docker, dan untuk mengirim image ke Artifact Registry (atau Container Registry) menggunakan Google Cloud CLI. Anda dapat menggunakan Cloud Workstations atau Cloud Shell Editor untuk melakukan langkah-langkah ini, yang telah menginstal alat ini sebelumnya.
Pilih image dasar yang ingin Anda gunakan dari daftar image dasar yang didukung, seperti
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
.Atau, Anda dapat menggunakan image container Anda sendiri atau menggunakan image container eksternal dengan mengikuti petunjuk untuk Menggunakan image container Anda sendiri.
Buat folder seperti
CUSTOM_IMAGE_FOLDER
dan Dockerfile di dalam folder ini yang memperluas image dasar yang dipilih, seperti yang ditunjukkan dalam contoh berikut.
Struktur image dasar Cloud Workstations
Image dasar Cloud Workstations memiliki struktur yang ditentukan berikut:
- File titik entri image dasar ditetapkan ke
/google/scripts/entrypoint.sh
. Saat memulai, image dasar menjalankan file di
/etc/workstation-startup.d/*
dalam urutan leksikografis untuk melakukan inisialisasi lingkungan workstation.File dan perilakunya adalah sebagai berikut:
000_configure-docker.sh
: Mengonfigurasi dan menjalankan Docker di dalam workstation.010_add-user.sh
: Membuat pengguna default di Cloud Workstations.Karena persistent disk dilampirkan secara dinamis ke penampung, pengguna harus ditambahkan saat workstation dimulai, bukan di Dockerfile.
020_start-sshd.sh
: Memulai layanansshd
di penampung.110_start-$IDE.sh
: Memulai IDE untuk image.
Cloud Workstations menyimpan image Docker di direktori beranda di
/home/.docker_data
sehingga image dipertahankan di antara sesi.
Untuk menambahkan fungsi tambahan selama startup workstation, tambahkan skrip Anda di
direktori /etc/workstation-startup.d/
:
Skrip di direktori ini berjalan sebagai root secara default. Untuk menjalankan skrip sebagai pengguna lain, gunakan perintah
runuser
.Karena skrip dijalankan dalam urutan leksikografis, sebaiknya Anda menambahkan awalan pada skrip dengan angka tiga digit yang lebih besar dari 200.
Modifikasi direktori utama
Jika konfigurasi workstation menentukan direktori utama persisten
(yang merupakan perilaku default), persistent disk yang mendukung direktori utama
akan dilampirkan secara dinamis ke penampung saat runtime. Proses ini menimpa
perubahan yang dilakukan pada direktori /home
pada waktu build image container.
Untuk mempertahankan update, ubah direktori /home
pada runtime penampung
dengan menambahkan skrip di direktori /etc/workstation-startup.d
,
atau dengan menambahkan konfigurasi per pengguna di direktori /etc/profile.d
.
Untuk mempercepat proses, pertimbangkan untuk menjalankan skrip penyiapan sebagai proses
latar belakang (tambahkan ampersand, &
, ke akhir perintah) untuk menghindari
pemblokiran startup penampung.
Beberapa contoh konfigurasi waktu build yang harus dipindahkan ke runtime penampung:
- Konfigurasi
git
per pengguna - Repositori
git
yang di-clone di direktori beranda - Konfigurasi pengguna langsung, seperti menempatkan file di direktori
$HOME/.config
- Pengguna dibuat
Pembuatan dan perubahan pengguna
Karena disk persisten secara dinamis dilampirkan ke penampung saat runtime,
pengguna harus ditambahkan saat workstation dimulai, bukan di Dockerfile. Untuk mengubah
atau membuat pengguna tambahan, sebaiknya perbarui
/etc/workstation-startup.d/010_add-user.sh
, atau
buat skrip Anda sendiri yang dijalankan saat startup.
Selain itu, Anda dapat mengubah profil bash default untuk pengguna dengan mengupdate
file di /etc/profile.d
.
Mengupdate kunci APT Aman yang telah dikonfigurasi sebelumnya
Image dasar Cloud Workstations sudah diinstal sebelumnya dengan sejumlah alat yang diperoleh
dari berbagai repositori pihak ketiga menggunakan Secure APT. Sebagai bagian dari proses
penginstalan, kunci publik yang disediakan oleh pemilik repositori diimpor menggunakan gpg
dan ditempatkan ke dalam setiap file di bagian /usr/share/keyrings/
. File ini
dirujuk dari file list
yang sesuai di bagian /etc/apt/sources.list.d/
.
Hal ini memungkinkan apt
memverifikasi integritas repositori tertentu saat
berinteraksi dengannya.
Terkadang, pemilik repositori pihak ketiga dapat memutuskan untuk mengubah kunci publik
yang digunakan untuk memvalidasi integritas repositori mereka, yang menyebabkan apt
menampilkan error saat berinteraksi dengannya. Untuk mengatasi potensi masalah ini,
Anda dapat menggunakan /google/scripts/refresh-preinstalled-apt-keys.sh
, yang
mendapatkan kunci publik bawaan versi terbaru dan mengimpornya kembali.
Mencantumkan versi IDE yang diinstal
Beberapa image dasar Cloud Workstations sudah diinstal sebelumnya dengan IDE. Untuk memudahkan, lihat skrip /google/scripts/preinstalled-ide-versions.sh
yang disertakan, yang mencantumkan informasi nama dan versi IDE yang diinstal di
image.
Menonaktifkan hak istimewa root sudo
Pengguna workstation default memiliki hak istimewa akses root sudo
di penampung
ini. Untuk menonaktifkan akses root ke penampung Docker, tetapkan
variabel lingkungan CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
ke true
saat membuat konfigurasi workstation.
Untuk menetapkan variabel lingkungan ini melalui konsol Google Cloud saat membuat konfigurasi workstation, ikuti langkah-langkah berikut:
- Saat membuat konfigurasi workstation, selesaikan konfigurasi untuk Informasi dasar dan Konfigurasi mesin.
- Pada dialog Environment customization, luaskan bagian Advanced container options dan pilih Environment variables.
- Klik tambahkanTambahkan variabel.
- Masukkan
CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
dantrue
sebagai nilai.
Menggunakan image container Anda sendiri
Anda juga dapat menggunakan image container Anda sendiri atau menggunakan image container eksternal, asalkan berbasis Linux dan menjalankan proses pemblokiran saat container dinyalakan.
Saat menyiapkan Dockerfile, petunjuk ENTRYPOINT
harus menjalankan
proses pemblokiran seperti sleep infinity
sehingga container terus
berjalan, bukan langsung keluar. Atau, dalam konfigurasi
workstation, Anda dapat menetapkan kolom config.container.args
untuk menentukan
proses pemblokiran.
Saat menggunakan image penampung Anda sendiri, perhatikan hal-hal berikut:
Cloud Workstations tidak memerlukan skrip tambahan dari image dasar Cloud Workstations.
Namun, Anda dapat melihat skrip di direktori
/etc/workstation-startup.d/
dalam penampung yang menjalankan image dasar Cloud Workstations. Nama file menunjukkan fungsi setiap skrip.Sebaiknya jalankan server SSH di penampung. Lihat
/etc/workstation-startup.d/020_start-sshd.sh
di image dasar default untuk mempelajari cara Cloud Workstations menyiapkannya secara default.Sebaiknya jalankan IDE atau server web default Anda di port
80
.
Memperluas gambar dasar Cloud Workstations
Saat memperluas image dasar Cloud Workstations untuk membuat image kustom bagi lingkungan workstation, Anda dapat menggunakan tiga pendekatan:
- Perbarui
Dockerfile
untuk menyertakan aset statis tambahan yang ingin Anda tambahkan. - Tambahkan file yang dapat dieksekusi tambahan di bagian
/etc/workstation-startup.d/
untuk menyesuaikan penampung yang sedang berjalan. File dalam direktori ini otomatis berjalan dalam urutan leksikografis saat penampung dimulai, sehingga Anda dapat menambahkan awalan pada nama file untuk menjalankannya pada waktu yang tepat selama startup workstation. - Ganti
ENTRYPOINT
di Dockerfile untuk menyesuaikan startup container sepenuhnya.
Contoh Dockerfile kustom
Bagian ini memberikan contoh skenario dan petunjuk untuk membuat Dockerfile Anda sendiri.
Image container dengan emacs
yang telah diinstal sebelumnya
Untuk membuat image container dengan emacs
yang telah diinstal sebelumnya, jalankan perintah
berikut:
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
RUN sudo apt update
RUN sudo apt install -y emacs
Image container dengan penyesuaian pengguna
Ikuti langkah-langkah berikut untuk menyesuaikan image container:
Buat skrip di
/etc/workstation-startup.d/*
yang berjalan setelah010_add-user.sh
—misalnya,011_customize-user.sh
:#!/bin/bash # Create new group groupadd $GROUP # Add the user to a new group usermod -a -G $GROUP $USERNAME
Ganti
$GROUP
dengan nama grup baru dan$USERNAME
dengan nama pengguna.Dengan asumsi bahwa Anda menamai skrip,
011_customize-user.sh
, tambahkan hal berikut ke image di Dockerfile dan buat skrip tersebut dapat dieksekusi:FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest COPY 011_customize-user.sh /etc/workstation-startup.d/ RUN chmod +x /etc/workstation-startup.d/011_customize-user.sh
Image container yang menetapkan variabel lingkungan container dalam sesi SSH
Variabel lingkungan yang ditetapkan di konfigurasi workstation atau tingkat workstation diteruskan ke subproses langsung menggunakan perintah titik entri. Ini mencakup IDE dalam image dasar yang telah dikonfigurasi sebelumnya. Namun, sesi SSH bukan proses turunan dari titik entri, dan tidak memiliki variabel lingkungan kustom ini yang ditetapkan.
Untuk menetapkan variabel lingkungan tersebut dalam sesi SSH, siapkan image
container kustom yang meneruskan variabel lingkungan ini dari perintah titik entri
container ke file /etc/environment
.
Untuk melakukannya, ikuti langkah-langkah berikut:
Buat skrip di
/etc/workstation-startup.d/*
yang berjalan setelah010_add-user.sh
—misalnya,011_add-ssh-env-variables.sh
:#!/bin/bash # echo "CUSTOM_ENV_VAR=$CUSTOM_ENV_VAR" >> /etc/environment
Ganti
CUSTOM_ENV_VAR
dengan nama variabel lingkungan yang dimaksud.Dengan asumsi bahwa Anda menamai skrip,
011_add-ssh-env-variables.sh
, tambahkan hal berikut ke image di Dockerfile dan buat skrip tersebut dapat dieksekusi:FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest COPY 011_add-ssh-env-variables.sh /etc/workstation-startup.d/ RUN chmod +x /etc/workstation-startup.d/011_add-ssh-env-variables.sh
Image container yang mengaktifkan penerusan X11 untuk sesi SSH
Penerusan X11 memungkinkan Anda memulai aplikasi jarak jauh dan meneruskan tampilan aplikasi ke komputer lokal.
Untuk membuat image container yang mengaktifkan penerusan X11, ubah file konfigurasi daemon
OpenSSH (/etc/ssh/sshd_config
) yang disediakan oleh image dasar Cloud Workstations dengan
menambahkan X11Forwarding yes
(untuk mengizinkan penerusan X11) dan AddressFamily inet
(untuk memastikan bahwa hanya IPv4 yang digunakan). Untuk informasi selengkapnya tentang kata kunci ini, lihat halaman web
OpenBSD tentang AddressFamily
dan
X11Forwarding
.
Berikut adalah contoh Dockerfile, yang membuat perubahan yang diperlukan:
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
# Permit X11 forwarding using only IPv4
RUN cat >> /etc/ssh/sshd_config <<-EOF
AddressFamily inet
X11Forwarding yes
EOF
Menyalin Code OSS untuk Cloud Workstation ke dalam image container lain
Dengan multi-staged build, Anda dapat menggunakan beberapa pernyataan FROM
dalam Dockerfile. Setiap petunjuk FROM
dapat menggunakan basis yang berbeda, dan memungkinkan
penulisan ulang artefak di antara tahap build. Untuk menambahkan Code OSS untuk Cloud Workstation ke
image container lain, gunakan build multi-tahap untuk menyalin folder aplikasi
/opt/code-oss
ke dalam image Anda. Jika Anda ingin memulai Code OSS untuk Cloud Workstations
pada waktu startup penampung, salin juga skrip /etc/workstation-startup.d/110_start-code-oss.sh
ke penampung Anda.
Berikut adalah contoh Dockerfile yang menyalin Code OSS ke dalam image JetBrains IntelliJ Ultimate. Kemudian, Anda dapat berinteraksi dengan salah satu IDE:
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest as code-oss-image
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/jetbrains-intellij:latest
# Copy Code OSS for Cloud Workstations and startup scripts into our custom image
COPY --from=code-oss-image /opt/code-oss /opt/code-oss
COPY --from=code-oss-image /etc/workstation-startup.d/110_start-code-oss.sh /etc/workstation-startup.d/110_start-code-oss.sh
# Use the existing entrypoint script which will execute all scripts in /etc/workstation-startup.d/
ENTRYPOINT ["/google/scripts/entrypoint.sh"]
Image container yang telah menginstal ekstensi IDE di Code OSS untuk Cloud Workstations untuk pengembangan Java
Untuk membuat image container yang menginstal sebelumnya ekstensi IDE di Code OSS untuk Cloud Workstations untuk pengembangan Java pada waktu build, jalankan perintah berikut:
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
RUN wget https://open-vsx.org/api/vscjava/vscode-java-debug/0.40.1/file/vscjava.vscode-java-debug-0.40.1.vsix && \
unzip vscjava.vscode-java-debug-0.40.1.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/java-debug
RUN wget https://open-vsx.org/api/vscjava/vscode-java-dependency/0.19.1/file/vscjava.vscode-java-dependency-0.19.1.vsix && \
unzip vscjava.vscode-java-dependency-0.19.1.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/java-dependency
RUN wget https://open-vsx.org/api/redhat/java/1.6.0/file/redhat.java-1.6.0.vsix && \
unzip redhat.java-1.6.0.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/redhat-java
RUN wget https://open-vsx.org/api/vscjava/vscode-maven/0.35.2/file/vscjava.vscode-maven-0.35.2.vsix && \
unzip vscjava.vscode-maven-0.35.2.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/java-maven
RUN wget https://open-vsx.org/api/vscjava/vscode-java-test/0.35.0/file/vscjava.vscode-java-test-0.35.0.vsix && \
unzip vscjava.vscode-java-test-0.35.0.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/java-test
Jika Anda melakukan pra-penginstalan ekstensi, ekstensi tersebut akan dianggap sebagai ekstensi bawaan.
Anda tidak akan dapat mengupdate ekstensi ini dan ekstensi tersebut mungkin tidak muncul di bagian yang diinstal di Extensions Marketplace .
Namun, Anda dapat menemukan ekstensi bawaan dengan menelusuri
@builtin
.
Cara lain untuk menginstal ekstensi saat startup adalah dengan menjalankan
skrip startup.
Misalnya, sertakan skrip startup berikut di bagian
/etc/workstation-startup.d/120_install_extensions.sh
:
/opt/code-oss/bin/codeoss-cloudworkstations --install-extension vscjava.vscode-java-debug@0.40.1 \
--install-extension vscjava.vscode-java-dependency@0.19.1 \
--install-extension redhat.java@1.6.0 \
--install-extension vscjava.vscode-maven@0.35.2 \
--install-extension vscjava.vscode-java-test@0.35.0
Dengan menggunakan metode ini, ekstensi akan muncul di Extensions Marketplace dan Anda dapat mengupdate dari sana.
Menginstal IDE dan plugin JetBrains ke dalam image dasar
Saat menyesuaikan image Docker untuk konfigurasi workstation, Anda dapat menginstal IDE dan plugin JetBrains, seperti Cloud Code untuk IntelliJ, ke dalam image dasar. Image dasar Cloud Workstations untuk produk JetBrains menyertakan skrip berikut untuk membantu Anda:
jetbrains-installer.sh
: menginstal JetBrains IDEplugin-installer.sh
: menginstal plugin, seperti Cloud Code for IntelliJ
Gunakan skrip ini sesuai kebutuhan untuk menyesuaikan image dasar, memanggilnya dengan skrip startup, atau menjalankannya setelah memulai workstation.
Skrip penginstal
Untuk melihat file sumber skrip jetbrains-installer.sh
dan plugin-installer.sh
, mulai workstation menggunakan konfigurasi workstation yang menggunakan salah satu image standar JetBrains, hubungkan ke workstation melalui JetBrains Gateway atau melalui SSH, lalu jelajahi file skrip di direktori installer-scripts
, yang terletak di direktori root.
Sebaiknya jalankan skrip ini pada waktu build penampung. Hindari menjalankannya di workstation yang sudah dimulai.
Menggunakan skrip penginstal plugin
Skrip plugin-installer.sh
menggunakan sintaksis berikut:
plugin-installer.sh [-v VERSION] [-d DESTINATION-DIRECTORY] [-c CHECKSUM] [-f] PLUGIN_ID
Ganti kode berikut:
VERSION
: nomor versi opsional plugin yang akan diinstal.DESTINATION-DIRECTORY
: direktori opsional tempat plugin harus diinstal. Jika tidak ditentukan, direktori kerja akan digunakan.CHECKSUM
: checksum SHA-256 opsional dari plugin yang diminta.-f
: jika ditentukan, plugin yang ada akan ditimpa.PLUGIN_ID
: ID plugin numerik yang diperlukan dari marketplace JetBrains. Misalnya, untuk menambahkan Dart, gunakan6351
sebagai PLUGIN_ID. Untuk menambahkan Cloud Code for IntelliJ, gunakan8079
sebagai PLUGIN_ID.
Misalnya, untuk menginstal plugin Dart versi terbaru di IntelliJ, jalankan perintah berikut:
plugin-installer.sh -d /opt/ideaIU/plugins/ 6351
Menggunakan skrip penginstal JetBrains
Sebaiknya gunakan skrip penginstal JetBrains saat memperluas image dasar yang telah dikonfigurasi sebelumnya untuk IDE JetBrains.
Skrip jetbrains-installer.sh
menggunakan sintaksis berikut:
jetbrains-installer.sh IDE [ pinned|latest ]
Ganti kode berikut:
IDE
: JetBrains IDE yang akan diinstal. Anda harus menggunakan salah satu singkatan IDE berikut:IDE Produk Diinstal cl
CLion clion
CLion go
GoLand goland
GoLand iiu
Intellij Ultimate intellij
Intellij Ultimate pcp
PyCharm Professional pycharm
PyCharm Professional ps
PHPStorm phpstorm
PHPStorm rd
Pengendara rider
Pengendara rm
RubyMine rubymine
RubyMine ws
WebStorm webstorm
WebStorm pinned|latest
: Opsional - Gunakan IDE versi terbaru atau yang disematkan. Default-nya adalahlatest
.
Misalnya, untuk menginstal Clion versi terbaru, jalankan perintah berikut:
jetbrains-installer.sh clion
Menyesuaikan file konfigurasi JetBrains IDE
Jika direktori beranda persisten ditentukan dalam konfigurasi
workstation, image dasar Cloud Workstations dengan IDE JetBrains
akan otomatis mempertahankan file konfigurasi
$IDE.vmoptions
dan $IDE.properties
. Untuk mengganti lokasi default file ini, tentukan
variabel lingkungan CLOUD_WORKSTATIONS_JETBRAINS_PERISTED_CONFIG_DIR
.
Untuk mengetahui informasi selengkapnya, Lihat
/etc/workstation-startup.d/120_persist-jetbrains-configs.sh
di
image dasar JetBrains untuk mempelajari
cara Cloud Workstation menyiapkannya secara default.
Memperluas image Docker dasar dengan Cloud Code for IntelliJ
Cuplikan Dockerfile berikut memperluas image Docker dasar dengan Cloud Code untuk IntelliJ dengan menyertakan 8079
sebagai ID plugin yang diperlukan.
Contoh ini juga secara opsional menentukan version 22.9.3-222
sebagai nomor
versi, /opt/ideaIU/plugins/
sebagai direktori tujuan, dan
89628279ed9042c526a81facc09bf53f8fb8b83b4595b0d329d94c1611e0c379
sebagai
checksum:
...
# Install IDE and Plugins
RUN bash /installer-scripts/jetbrains-installer.sh intellij pinned && \
# Install Cloud Code - https://plugins.jetbrains.com/plugin/8079-cloud-code
bash /installer-scripts/plugin-installer.sh \
-v 22.9.3-222 \
-d /opt/ideaIU/plugins/ \
-c 89628279ed9042c526a81facc09bf53f8fb8b83b4595b0d329d94c1611e0c379 \
8079
# Register IDE with JetBrains Gateway
RUN echo 'runuser user -c "/opt/ideaIU/bin/remote-dev-server.sh registerBackendLocationForGateway"' > /etc/workstation-startup.d/110_register-intellij-with-gateway.sh \
echo 'echo "IntelliJ-Ultimate ready for incoming gateway connection"' >> /etc/workstation-startup.d/110_register-intellij-with-gateway.sh
...
Menginstal ekstensi IDE tambahan di Code OSS untuk Workstation Cloud
Temukan ekstensi IDE tambahan di Open VSX Registry.
Anda juga dapat menemukan URL file .vsix
dengan menyalin URL dari
link Download untuk ekstensi apa pun.
Jika Anda membuka Extensions Marketplace dari workstation, Install akan muncul, bukan Download.
Setelan Code OSS default untuk Cloud Workstations
Untuk mengetahui informasi mendetail tentang penyimpanan setelan di Code OSS untuk Cloud Workstation, lihat Menyesuaikan setelan.
Jika menentukan direktori rumah persisten dalam konfigurasi workstation,
Anda dapat mengonfigurasi setelan default untuk Code OSS untuk Cloud Workstation dengan menambahkan
skrip startup
yang menulis setelan ke
$HOME/.codeoss-cloudworkstations/data/Machine/settings.json
.
Misalnya, jika Anda ingin menetapkan tema warna default ke Gelap, luaskan gambar editor
dasar untuk menyertakan skrip berikut di bagian
/etc/workstation-startup.d/150_default-ide-color-theme.sh
cat <<< $(jq '. += {"workbench.colorTheme": "Default Dark Modern"}' settings.json) > settings.json
Mem-build image container kustom
Untuk mengetahui informasi selengkapnya tentang perintah Docker, lihat referensi Docker. Masukkan perintah berikut untuk mem-build penampung Anda:
docker build CUSTOM_IMAGE_FOLDER -t TARGET_IMAGE
Perhatikan bahwa mengganti teks yang mendahului ikon edit Edit akan memperbarui contoh lain di halaman ini.
Ganti kode berikut:
CUSTOM_IMAGE_FOLDER
: jalur ke folder yang Anda buat untuk menyimpan gambar kustom.TARGET_IMAGE
: jalur ke image Anda di Artifact Registry (atau Container Registry).Misalnya,
TARGET_IMAGE
mungkin mengarah ke jalur gambar target yang mirip dengan salah satu jalur berikut:*.pkg.dev/cloud-workstations-external/customimage:latest *.gcr.io/cloud-workstations-external/customimage:latest
Ganti * sesuai kebutuhan dengan nama region dan ID tambahan apa pun.
Anda juga dapat memperbarui variabel lingkungan CLOUD_WORKSTATIONS_CUSTOM_IMAGE
agar mengarah ke repositori.
Untuk mengetahui informasi selengkapnya tentang cara menyimpan image Docker di Artifact Registry, lihat bagian berikut:
- Cara Membuat repositori Docker dengan Artifact Registry.
- Konvensi penamaan untuk nama repositori dan image.
Menghosting image container kustom
Untuk menghosting image container kustom, kami merekomendasikan dan mendukung Artifact Registry. Jika Anda menggunakan GitHub atau repositori publik atau pribadi lainnya, Cloud Workstations mungkin tidak berfungsi seperti yang diharapkan. Untuk informasi selengkapnya, lihat catatan penting di bagian Menggunakan image penampung kustom.
Menguji image container kustom
Setelah penampung selesai di-build, Anda dapat mengujinya dengan perintah berikut:
docker run --privileged -p LOCAL_PORT:CONTAINER_PORT TARGET_IMAGE
Ganti kode berikut:
LOCAL_PORT
: nomor port lokalCONTAINER_PORT
: nomor port penampung
Misalnya, mengganti
LOCAL_PORT
:CONTAINER_PORT
dengan
8080
:80
menetapkan port 8080
untuk digunakan secara lokal dan port 80
untuk digunakan dalam
penampung.
Jika Anda memperluas image editor dasar Cloud Workstations, jalankan perintah docker
, lalu uji image workstation dengan menghubungkan ke workstation melalui browser lokal atau dengan menjalankan ssh
untuk terhubung ke penampung:
- Jika Anda terhubung melalui browser, pastikan Anda meneruskan
-p 8080:80
ke perintahdocker run
, lalu bukalocalhost:8080
. - Jika Anda memilih untuk terhubung melalui SSH, pastikan Anda meneruskan
-p 2222:22
ke perintahdocker run
, lalu jalankanssh user@localhost -p 2222
.
Menggunakan image container kustom
Untuk menggunakan image container kustom setelah Anda mem-build dan mengujinya secara lokal, kirim container ke Artifact Registry (atau Container Registry) dengan perintah berikut:
docker push TARGET_IMAGE
Sekarang Anda dapat membuat konfigurasi workstation menggunakan image container yang baru saja Anda buat dan kirim.
Untuk informasi selengkapnya, lihat Membuat repositori Docker dengan Artifact Registry.
Masalah debug
Untuk menemukan dan men-debug masalah yang menjalankan image container, tinjau log output container dari workstation yang sedang berjalan.
Direkomendasikan: membantu mengamankan pipeline gambar Anda
Anda bertanggung jawab untuk mengelola dan mengupdate paket dan dependensi kustom yang ditambahkan pada image kustom.
Jika Anda membuat gambar kustom, sebaiknya lakukan hal berikut:
Bantu mengamankan pipeline image Anda dengan mem-build ulang image ini secara otomatis saat image dasar Cloud Workstations diupdate.
Jalankan alat pemindaian penampung seperti Artifact Analysis untuk memeriksa dependensi tambahan yang Anda tambahkan.
Jadwalkan build untuk mem-build ulang image setiap minggu, atau pelajari cara mengotomatiskan pembuatan ulang image container.
Langkah selanjutnya
- Mengotomatiskan pembuatan ulang image container untuk menyinkronkan pembaruan image dasar menggunakan Cloud Build dan Cloud Scheduler.
- Menyiapkan praktik terbaik keamanan.
- Pelajari Artifact Analysis lebih lanjut.