Google Cloud memelihara image dasar berikut untuk Cloud Workstations, yang berasal dari image dasar standar Google Cloud .
Daftar image dasar yang telah dikonfigurasi sebelumnya
Image ini dapat digunakan langsung dalam konfigurasi workstation,
atau dapat digunakan sebagai image dasar saat membuat
image container kustom
dengan perintah FROM Docker.
| Image | Deskripsi |
|---|---|
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest | Editor dasar Cloud Workstations, Code OSS untuk Cloud Workstations, berdasarkan Code-OSS. (Default) |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/base:latest | Image dasar tanpa IDE yang terinstal. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss-cuda:latest | Editor dasar Cloud Workstations, Code OSS untuk Cloud Workstations, berdasarkan Code-OSS dengan NVIDIA CUDA Toolkit. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/clion:latest | CLion IDE. Hanya dapat diakses melalui JetBrains Gateway. Untuk mengetahui informasi penginstalan dan cara memulai, lihat Mengembangkan kode menggunakan IDE JetBrains lokal. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/goland:latest | GoLand IDE. Hanya dapat diakses melalui JetBrains Gateway. Untuk mengetahui informasi penginstalan dan cara memulai, lihat Mengembangkan kode menggunakan IDE JetBrains lokal. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/intellij-ultimate:latest | IDE IntelliJ IDEA Ultimate. Hanya dapat diakses melalui JetBrains Gateway. Untuk mengetahui informasi penginstalan dan cara memulai, lihat Mengembangkan kode menggunakan IDE JetBrains lokal. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/phpstorm:latest | IDE PhpStorm. Hanya dapat diakses melalui JetBrains Gateway. Untuk mengetahui informasi penginstalan dan cara memulai, lihat Mengembangkan kode menggunakan IDE JetBrains lokal. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/pycharm:latest | IDE PyCharm Professional. Hanya dapat diakses melalui JetBrains Gateway. Untuk mengetahui informasi penginstalan dan cara memulai, lihat Mengembangkan kode menggunakan IDE JetBrains lokal. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/rider:latest | IDE Rider. Hanya dapat diakses melalui JetBrains Gateway. Untuk mengetahui informasi penginstalan dan cara memulai, lihat Mengembangkan kode menggunakan IDE JetBrains lokal. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/rubymine:latest | IDE RubyMine. Hanya dapat diakses melalui JetBrains Gateway. Untuk mengetahui informasi penginstalan dan cara memulai, lihat Mengembangkan kode menggunakan IDE JetBrains lokal. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/webstorm:latest | IDE WebStorm. Hanya dapat diakses melalui JetBrains Gateway. Untuk mengetahui informasi penginstalan dan cara memulai, lihat Mengembangkan kode menggunakan IDE JetBrains lokal. |
Daftar image dasar pihak ketiga
| Image pihak ketiga | Penyedia pihak ketiga |
|---|---|
| us-central1-docker.pkg.dev/posit-images/cloud-workstations/workbench:latest | Posit Workbench (termasuk RStudio Pro) |
Jika Anda mengalami masalah dengan Posit Workbench IDE atau dengan image container Posit Workbench, laporkan ke Posit di GitHub.
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 bagian
/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 dipasang secara dinamis ke container, pengguna harus ditambahkan saat workstation dimulai, bukan di Dockerfile.
020_start-sshd.sh: Memulai layanansshddi container.030_customize-environment.sh: Menjalankan/home/user/.workstation/customize_environmentsebagaiuser.110_start-$IDE.sh: Memulai IDE untuk image.
Cloud Workstations menyimpan image Docker di direktori beranda di
/home/.docker_datasehingga image dipertahankan di antara sesi.
Untuk menambahkan fungsi tambahan selama startup workstation, tambahkan skrip Anda di
direktori /etc/workstation-startup.d/:
Skrip dalam direktori ini dijalankan sebagai root secara default. Untuk menjalankan skrip sebagai pengguna lain, gunakan perintah
runuser.Karena skrip dijalankan dalam urutan leksikografis, sebaiknya Anda memberi awalan pada skrip dengan angka tiga digit yang lebih besar dari 200.
Atau, jika tidak ingin memperluas image workstation, Anda dapat membuat skrip customize_environment di direktori beranda.
Modifikasi direktori utama
Jika konfigurasi workstation menentukan direktori utama persisten
(yang merupakan perilaku default), persistent disk yang mendukung direktori utama
akan dipasang secara dinamis ke container saat runtime. Proses ini akan menimpa
modifikasi yang dilakukan pada direktori /home pada waktu build image container.
Untuk mempertahankan update, ubah direktori /home pada runtime container
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 container.
Beberapa contoh konfigurasi waktu build yang harus dipindahkan ke runtime container:
- Konfigurasi
gitper pengguna - Repositori
gitdi-clone di direktori utama - Konfigurasi pengguna langsung, seperti menempatkan file di direktori
$HOME/.config - Pembuatan pengguna
Pembuatan dan modifikasi pengguna
Karena persistent disk terpasang secara dinamis ke container 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 Secure APT yang telah dikonfigurasi sebelumnya
Image dasar Cloud Workstations dilengkapi 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 file individual di bagian /usr/share/keyrings/. File ini
direferensikan 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
memperoleh versi terbaru kunci publik yang telah diinstal sebelumnya dan mengimpornya kembali.
Anda juga dapat menjalankan skrip ini langsung di Dockerfile kustom sebelum
menjalankan apt-get update:
# Refresh the preinstalled APT keys
RUN /google/scripts/refresh-preinstalled-apt-keys.sh
RUN apt-get update
Mencantumkan versi IDE yang diinstal
Beberapa image dasar Cloud Workstations dilengkapi dengan IDE yang telah diinstal sebelumnya. Untuk
memudahkan, lihat skrip /google/scripts/preinstalled-ide-versions.sh
yang disertakan, yang mencantumkan informasi nama dan versi IDE yang diinstal dalam
image.
Menonaktifkan hak istimewa root sudo
Pengguna workstation default memiliki hak istimewa akses root sudo di container ini. Untuk menonaktifkan akses root ke container 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, lalu pilih Variabel lingkungan.
- Klik addTambahkan variabel.
- Masukkan
CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDOdantruesebagai nilai.
Menyesuaikan tanpa memperluas gambar
Untuk memudahkan, semua image dasar Cloud Workstations memeriksa keberadaan
file yang dapat dieksekusi yang terletak di /home/user/.workstation/customize_environment
dan, jika ada, menjalankannya di latar belakang sebagai user. Dengan begitu, Anda dapat menjalankan skrip atau biner apa pun saat startup. Tidak seperti .profile atau .bashrc, skrip
hanya berjalan sekali saat workstation dimulai, bukan sekali untuk setiap login
shell.
Karena skrip customize_environment berjalan sebagai user, pastikan untuk memperbarui
izin seperlunya saat menulis skrip. Misalnya, jika Anda ingin menginstal Emacs setiap kali workstation dimulai, konten customize_environment mungkin mirip dengan berikut ini:
#!/bin/bash
sudo apt-get update
sudo apt-get install -y emacs
Log eksekusi untuk customize_environment dapat ditemukan di container di
/var/log/customize_environment dan juga ditulis ke
log output container.
Setelah customize_environment berhasil dieksekusi, file akan dibuat di
/var/run/customize_environment_done. Karena customize_environment berjalan secara paralel dengan startup Workstation, paket yang diinstal oleh skrip dapat tersedia segera setelah workstation Anda dimulai.
Mencegah waktu tunggu tidak ada aktivitas
Untuk memudahkan, semua image dasar Cloud Workstations menyertakan skrip yang telah diinstal sebelumnya di /google/scripts/keep_alive.sh. Skrip ini mengirimkan pesan keep-alive reguler, yang dapat mencegah workstation dinonaktifkan karena waktu tunggu tidak ada aktivitas saat Anda menjalankan proses latar belakang tanpa interaksi langsung.
Mencegah waktu tunggu tidak ada aktivitas dengan agen AI
Selain itu, image dasar Cloud Workstations menyertakan contoh skrip konfigurasi agen di bagian /google/samples/agents/keepalive/. Konfigurasi contoh ini memungkinkan Anda mengonfigurasi agen coding AI (seperti Claude Code dan Antigravity CLI) di dalam workstation untuk otomatis menjaga workstation tetap aktif saat agen tersebut aktif mengerjakan tugas. Saat agen menyelesaikan tugasnya atau dijeda untuk menunggu input pengguna, skrip akan berhenti mengirim pesan keep-alive, sehingga workstation akan mengalami waktu tunggu habis karena tidak ada aktivitas.
Konfigurasi ini berfungsi paling baik jika konfigurasi workstation disetel untuk menggunakan
penangguhan workstation (idleAction disetel ke SUSPEND),
sehingga workstation dapat menyimpan status memori dan melanjutkan dengan lancar saat Anda kembali.
Untuk mengetahui informasi selengkapnya tentang cara menyiapkan alur kerja yang dibantu agen dan hook keep-alive, lihat Pengembangan yang dioptimalkan agen.
Langkah berikutnya
- Sesuaikan image container Anda.
- Mengotomatiskan pembuatan ulang image container untuk menyinkronkan pembaruan image dasar menggunakan Cloud Build dan Cloud Scheduler.
- Menyiapkan praktik keamanan terbaik.