預先設定的基本映像檔

Google Cloud 會維護下列基本映像檔,供 Cloud Workstations 使用。

預先設定的基本映像檔清單

這些映像檔可直接用於工作站設定,或在透過 Docker 的 FROM 指令建立自訂容器映像檔時,做為基本映像檔使用。

圖片 說明
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest Cloud Workstations 基礎編輯器,也就是以 Code-OSS 為基礎的 Cloud Workstations 專用 Code OSS。(預設)
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/base:latest 未安裝 IDE 的基本映像檔。
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/clion:latest CLion IDE。只能透過 JetBrains Gateway 存取。
如需安裝和入門資訊,請參閱「使用本機 JetBrains IDE 編寫程式碼」。
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/goland:latest GoLand IDE。只能透過 JetBrains Gateway 存取。
如需安裝和入門資訊,請參閱「使用本機 JetBrains IDE 編寫程式碼」。
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/intellij-ultimate:latest IntelliJ IDEA Ultimate IDE。只能透過 JetBrains Gateway 存取。
如需安裝和入門資訊,請參閱「使用本機 JetBrains IDE 編寫程式碼」。
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/phpstorm:latest PhpStorm IDE。只能透過 JetBrains Gateway 存取。
如需安裝和入門資訊,請參閱「使用本機 JetBrains IDE 編寫程式碼」。
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/pycharm:latest PyCharm Professional IDE。只能透過 JetBrains Gateway 存取。
如需安裝和入門資訊,請參閱「使用本機 JetBrains IDE 編寫程式碼」。
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/rider:latest Rider IDE。只能透過 JetBrains Gateway 存取。
如需安裝和入門資訊,請參閱「使用本機 JetBrains IDE 編寫程式碼」。
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/rubymine:latest RubyMine IDE。只能透過 JetBrains Gateway 存取。
如需安裝和入門資訊,請參閱「使用本機 JetBrains IDE 編寫程式碼」。
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/webstorm:latest WebStorm IDE。只能透過 JetBrains Gateway 存取。
如需安裝和入門資訊,請參閱「使用本機 JetBrains IDE 編寫程式碼」。

第三方基礎映像檔清單

第三方圖片 第三方供應商
us-central1-docker.pkg.dev/posit-images/cloud-workstations/workbench:latest Posit Workbench (包括 RStudio Pro)

如果遇到 Posit Workbench IDE 或 Posit Workbench 容器映像檔相關問題,請在 GitHub 上向 Posit 回報。

Cloud Workstations 基礎映像檔結構

Cloud Workstations 基礎映像檔共用下列定義的結構:

  • 基本映像檔進入點檔案設為 /google/scripts/entrypoint.sh
  • 啟動時,基礎映像檔會依字典順序執行 /etc/workstation-startup.d/* 下的檔案,以初始化工作站環境。

    檔案及其行為如下:

    • 000_configure-docker.sh:在工作站內設定及執行 Docker。
    • 010_add-user.sh:在 Cloud Workstations 中建立預設使用者。

      由於永久磁碟會動態連結至容器,因此使用者必須在工作站啟動時新增,而非在 Dockerfile 中新增。

    • 020_start-sshd.sh:在容器中啟動 sshd 服務。

    • 030_customize-environment.sh:以 user 形式執行 /home/user/.workstation/customize_environment

    • 110_start-$IDE.sh:啟動圖片的 IDE。

  • Cloud Workstations 會將 Docker 映像檔儲存在 /home/.docker_data 的主目錄中,以便在工作階段之間保留映像檔。

如要在工作站啟動期間新增其他功能,請在 /etc/workstation-startup.d/ 目錄中加入指令碼:

  • 根據預設,這個目錄中的指令碼會以根使用者身分執行。如要以其他使用者身分執行指令碼,請使用 runuser 指令。

  • 由於指令碼會依字典順序執行,建議您在指令碼前加上大於 200 的三位數數字。

或者,如果不想擴充工作站映像檔,可以在主目錄中建立 customize_environment 指令碼

主目錄修改

如果工作站設定指定永久主目錄 (這是預設行為),系統會在執行階段將支援主目錄的永久磁碟動態附加至容器。這個程序會覆寫在建構容器映像檔時對 /home 目錄所做的修改。

如要保留更新,請在容器執行階段修改 /home 目錄,方法是在 /etc/workstation-startup.d 目錄中新增指令碼,或在 /etc/profile.d 目錄中新增個別使用者的設定。為加快程序,請考慮將設定指令碼做為背景程序執行 (在指令結尾加上連字號 &),避免阻礙容器啟動。

以下列出一些應移至容器執行階段的建構時間設定:

  • 使用者專屬 git 設定
  • 複製到主目錄的 git 個存放區
  • 直接設定使用者,例如將檔案放入 $HOME/.config 目錄
  • 建立使用者

建立及修改使用者

由於永久磁碟會在執行階段動態連結至容器,因此使用者必須在工作站啟動時新增,而非在 Dockerfile 中新增。如要修改或建立其他使用者,建議您更新 /etc/workstation-startup.d/010_add-user.sh,或建立自己的啟動時執行指令碼。

此外,您也可以更新 /etc/profile.d 中的檔案,修改使用者的預設 bash 設定檔。

更新預先設定的 Secure APT 金鑰

Cloud Workstations 基本映像檔預先安裝了許多工具,這些工具是透過 Secure APT 從各種第三方存放區取得。在安裝過程中,系統會使用 gpg 匯入存放區擁有者提供的公開金鑰,並將金鑰放入 /usr/share/keyrings/ 下的個別檔案。這些檔案會從 /etc/apt/sources.list.d/ 下的對應 list 檔案參照。這樣一來,apt 與存放區互動時,就能驗證存放區的完整性。

有時,第三方存放區擁有者可能會決定變更用於驗證存放區完整性的公開金鑰,導致 apt 在與存放區互動時顯示錯誤。如要解決這個潛在問題,可以使用 /google/scripts/refresh-preinstalled-apt-keys.sh 取得最新版本的預先安裝公開金鑰,然後重新匯入。

列出已安裝的 IDE 版本

部分 Cloud Workstations 基本映像檔已預先安裝 IDE。為方便起見,請參閱內含的 /google/scripts/preinstalled-ide-versions.sh 指令碼,其中列出映像檔中安裝的 IDE 名稱和版本資訊。

關閉 sudo Root 權限

預設工作站使用者在這些容器中擁有 sudo Root 存取權。如要關閉 Docker 容器的根存取權,請在建立工作站設定時,將 CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO 環境變數設為 true

如要在建立工作站設定時,透過 Google Cloud 控制台設定此環境變數,請按照下列步驟操作:

  1. 建立工作站設定時,請完成「基本資訊」和「機器設定」的設定。
  2. 在「環境自訂」對話方塊中,展開「進階容器選項」區段,然後選取「環境變數」
  3. 按一下「新增」新增變數
  4. 輸入 CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDOtrue 做為值。

自訂圖片,但不延伸圖片

為方便起見,所有 Cloud Workstations 基礎映像檔都會檢查 /home/user/.workstation/customize_environment 是否有可執行檔,如有,則會在背景以 user 形式執行。這可讓您在啟動時執行任何指令碼或二進位檔。與 .profile.bashrc 不同,指令碼只會在工作站啟動時執行一次,而不是在每次登入殼層時執行。

由於 customize_environment 指令碼會以 user 形式執行,因此編寫指令碼時,請務必視需要更新權限。舉例來說,如果您想在每次啟動工作站時安裝 Emacs,customize_environment 的內容可能如下所示:

#!/bin/bash
sudo apt-get update
sudo apt-get install -y emacs

customize_environment 的執行記錄位於容器的 /var/log/customize_environment,也會寫入容器輸出記錄。成功執行 customize_environment 後,系統會在 /var/run/customize_environment_done 中建立檔案。由於 customize_environment 與工作站啟動作業並行執行,因此工作站啟動後不久,指令碼安裝的套件就能使用。

後續步驟