Google Cloud menyimpan image dasar berikut yang dirancang untuk digunakan dengan Cloud Workstations.
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 | Cloud Workstations base editor, Code OSS for Cloud Workstations, yang didasarkan pada Code-OSS. (Default) |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/base:latest | Image dasar tanpa IDE terinstal. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/clion:latest | CLion IDE. Hanya dapat diakses melalui JetBrains Gateway. Untuk mengetahui informasi tentang penginstalan dan 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 tentang penginstalan dan memulai, lihat Mengembangkan kode menggunakan IDE JetBrains lokal. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/intellij-ultimate:latest | IntelliJ IDEA Ultimate IDE. Hanya dapat diakses melalui JetBrains Gateway. Untuk mengetahui informasi tentang penginstalan dan 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 tentang penginstalan dan memulai, lihat Mengembangkan kode menggunakan IDE JetBrains lokal. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/pycharm:latest | PyCharm Professional IDE. Hanya dapat diakses melalui JetBrains Gateway. Untuk mengetahui informasi tentang penginstalan dan 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 tentang penginstalan dan 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 tentang penginstalan dan 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 tentang penginstalan dan memulai, lihat Mengembangkan kode menggunakan IDE JetBrains lokal. |
Daftar image dasar pihak ketiga
Gambar 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 terkait IDE Posit Workbench 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 entrypoint gambar dasar disetel ke
/google/scripts/entrypoint.sh
. Saat memulai, image dasar menjalankan file pada
/etc/workstation-startup.d/*
dalam urutan leksikografis untuk menginisialisasi 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 terpasang secara dinamis ke container, pengguna harus ditambahkan saat memulai workstation, bukan di Dockerfile.
020_start-sshd.sh
: Memulai layanansshd
di container.110_start-$IDE.sh
: Memulai IDE untuk gambar.
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 dalam
direktori /etc/workstation-startup.d/
:
Skrip dalam direktori ini berjalan sebagai {i>root<i} secara {i>default<i}. Untuk menjalankan skrip sebagai pengguna yang berbeda, gunakan perintah
runuser
.Karena skrip dieksekusi dalam urutan leksikografis, sebaiknya berikan awalan pada skrip dengan angka tiga digit yang lebih besar dari 200.
Modifikasi direktori {i>home<i}
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 dibuat pada direktori /home
pada waktu build image container.
Untuk mempertahankan update, ubah direktori /home
pada runtime penampung dengan menambahkan skrip di dalam 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, &
, di akhir perintah) untuk menghindari
pemblokiran startup container.
Beberapa contoh konfigurasi waktu build yang harus dipindahkan ke runtime container:
- Konfigurasi
git
per pengguna git
repositori di-clone di direktori home- Konfigurasi pengguna langsung, seperti menempatkan file dalam direktori
$HOME/.config
- Pengguna dibuat
Pembuatan dan perubahan pengguna
Karena persistent disk terpasang secara dinamis ke container saat runtime, pengguna harus ditambahkan saat memulai workstation, bukan di Dockerfile. Untuk mengubah
atau membuat pengguna tambahan, sebaiknya update
/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 memperbarui 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 masing-masing file pada /usr/share/keyrings/
. File ini
direferensikan dari file list
yang sesuai di /etc/apt/sources.list.d/
.
Hal ini memungkinkan apt
memverifikasi integritas repositori yang diberikan 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 bawaan dan mengimpornya ulang.
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 nama dan informasi versi IDE yang diinstal dalam
image.
Nonaktifkan hak istimewa root sudo
Pengguna workstation default memiliki hak istimewa akses root sudo
dalam penampung 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 Anda, selesaikan konfigurasi untuk Informasi dasar dan konfigurasi Mesin.
- Di dialog Environmentengagement, luaskan bagian Advanced container options, lalu pilih Environment variables.
- Klik tambahkanTambahkan variabel.
- Masukkan
CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
dantrue
sebagai nilai.
Langkah selanjutnya
- Sesuaikan image container Anda.
- Otomatiskan build ulang image container untuk menyinkronkan pembaruan image dasar menggunakan Cloud Build dan Cloud Scheduler.
- Menyiapkan praktik terbaik keamanan.