Google Cloud 维护以下专为 Cloud Workstations 使用的基础映像。
预配置基础映像列表
这些映像可以直接用于工作站配置,也可以在使用 Docker 的 FROM
命令创建自定义容器映像时用作基础映像。
Image | 说明 |
---|---|
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest | Cloud Workstations 基础编辑器,即 Code OSS for 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
服务。110_start-$IDE.sh
:启动映像的 IDE。
Cloud Workstations 将 Docker 映像存储在主目录中的
/home/.docker_data
下,以便系统在各会话之间保留这些映像。
如需在工作站启动期间添加其他功能,请在 /etc/workstation-startup.d/
目录中添加脚本:
默认情况下,此目录中的脚本以 root 身份运行。如需以其他用户身份执行这些脚本,请使用
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 版本
IDE 预安装了多个 Cloud Workstations 基础映像。为方便起见,请参阅随附的 /google/scripts/preinstalled-ide-versions.sh
脚本,其中列出了映像中安装的 IDE 的名称和版本信息。
停用 sudo
root 权限
默认工作站用户在这些容器中具有 sudo
根目录访问权限。如需停用对 Docker 容器的 root 访问权限,请在创建工作站配置时将 CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
环境变量设置为 true
。
如需在创建工作站配置时通过 Google Cloud 控制台设置此环境变量,请按以下步骤操作:
- 创建工作站配置时,请完成基本信息和机器配置的配置。
- 在环境自定义对话框中,展开高级容器选项部分,然后选择环境变量。
- 点击添加添加变量。
- 输入
CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
和true
作为值。
后续步骤
- 自定义容器映像。
- 自动重新构建容器映像,以使用 Cloud Build 和 Cloud Scheduler 同步基础映像更新。
- 设置安全性最佳实践。