Image dasar yang telah dikonfigurasi sebelumnya

Google Cloud mempertahankan image dasar berikut untuk Cloud Workstations, yang berasal dari Google Cloud's image dasar standar.

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 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 IDE CLion. Hanya dapat diakses melalui JetBrains Gateway.
Untuk informasi penginstalan dan memulai, lihat Mengembangkan kode menggunakan IDE JetBrains lokal.
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/goland:latest IDE GoLand. Hanya dapat diakses melalui JetBrains Gateway.
Untuk informasi penginstalan dan 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 informasi 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 informasi penginstalan dan 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 informasi 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 informasi 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 informasi 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 informasi penginstalan dan 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 IDE Posit Workbench atau dengan image container Posit Workbench, laporkan masalah tersebut 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 startup, image dasar menjalankan file di /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 disk persisten terlampir secara dinamis ke container, pengguna harus ditambahkan saat startup workstation, bukan di Dockerfile.

    • 020_start-sshd.sh: Memulai layanan sshd di container.

    • 030_customize-environment.sh: Mengeksekusi /home/user/.workstation/customize_environment sebagai user.

    • 110_start-$IDE.sh: Memulai IDE untuk image.

  • Cloud Workstations menyimpan image Docker di direktori utama di /home/.docker_data sehingga image tersebut dipertahankan antar-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 dieksekusi dalam urutan leksikografis, sebaiknya beri awalan 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 utama.

Modifikasi direktori utama

Jika konfigurasi workstation menentukan direktori utama persisten (yang merupakan perilaku default), disk persisten yang mendukung direktori utama akan terlampir secara dinamis ke container saat runtime. Proses ini akan menimpa modifikasi yang dilakukan pada direktori /home saat waktu build image container.

Untuk mempertahankan update, ubah direktori /home saat 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 git per pengguna
  • Repositori git yang di-clone di direktori utama
  • Konfigurasi pengguna langsung, seperti menempatkan file di direktori $HOME/.config
  • Pengguna dibuat

Pembuatan dan modifikasi pengguna

Karena disk persisten terlampir secara dinamis ke container saat runtime, pengguna harus ditambahkan saat startup workstation, 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 dieksekusi saat startup.

Selain itu, Anda dapat mengubah profil bash default untuk pengguna dengan memperbarui file di /etc/profile.d.

Memperbarui kunci Secure APT yang telah dikonfigurasi sebelumnya

Image dasar Cloud Workstations telah 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 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 mendapatkan versi terbaru kunci publik yang telah diinstal sebelumnya dan mengimpornya kembali.

Mencantumkan versi IDE yang diinstal

Beberapa image dasar Cloud Workstations telah 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 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 Google Cloud konsol saat membuat konfigurasi workstation, ikuti langkah-langkah berikut:

  1. Saat membuat konfigurasi workstation, selesaikan konfigurasi untuk Informasi dasar dan Konfigurasi mesin.
  2. Pada dialog Penyesuaian lingkungan, luaskan bagian Opsi container lanjutan dan pilih Variabel lingkungan.
  3. Klik addTambahkan variabel.
  4. Masukkan CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO dan true sebagai nilai.

Menyesuaikan tanpa memperluas image

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. Hal ini memungkinkan Anda 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 sesuai kebutuhan 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 berhasil menjalankan customize_environment, 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 mengirim pesan keep-alive reguler, yang dapat mencegah workstation dimatikan karena waktu tunggu tidak ada aktivitas saat Anda menjalankan proses latar belakang tanpa interaksi langsung.

Langkah berikutnya