预配置的基础映像

Google Cloud 维护以下基础映像,专用于 Cloud Workstations。

预配置的基础映像列表

这些映像可以直接用于工作站配置, 也可以在创建容器时将其用作基础映像 自定义容器映像 替换为 Docker 的FROM命令

Image 说明
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest Cloud Workstations 基本编辑器,即基于 Code-OSS 的 Code OSS for Cloud Workstations。(默认)
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 服务。

    • 110_start-$IDE.sh:启动映像的 IDE。

  • Cloud Workstations 将 Docker 映像存储在以下位置的主目录中: /home/.docker_data,以便在会话之间保留图片。

如需在工作站启动期间添加其他功能,请将脚本添加到 /etc/workstation-startup.d/ 目录:

  • 此目录中的脚本默认以根用户身份运行。要将脚本作为 如果是其他用户,请使用 runuser 命令。

  • 由于脚本按字典顺序执行,因此我们建议您 为脚本添加一个大于 200 的三位数前缀。

主目录修改

当工作站配置指定了永久性主目录时 (这是默认行为),一个支持主目录的永久性磁盘 会在运行时动态附加到容器此过程会覆盖 在容器映像构建时对 /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 配置文件。

更新预配置的安全 APT 密钥

Cloud Workstations 基础映像预装了多种工具, 使用安全 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 中安装的 IDE 的名称和版本信息 图片。

停用 sudo 项 root 权限

默认工作站用户在以下文件夹中拥有 sudo 项 root 访问权限 容器要关闭对 Docker 容器的 root 访问权限,请设置 CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO 环境变量 设置为 true

要在创建容器时通过 Google Cloud 控制台设置此环境变量,请执行以下操作: 您的工作站配置,请按以下步骤操作:

  1. 创建工作站配置时,请完成“基本信息”和“机器配置”的配置。
  2. 环境自定义对话框中,展开高级容器选项部分,然后选择环境变量
  3. 依次点击添加 添加变量
  4. 输入 CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDOtrue 作为值。

后续步骤