Workers Builds 使用支持多种语言和工具的构建镜像,例如 Node.js、Python、PHP、Ruby 和 Go。
Workers Builds 支持多种运行时、语言和工具。除非检测到或指定自定义版本,否则构建将使用下面列出的默认版本。你可以使用环境变量或版本文件覆盖默认版本。所有版本均可覆盖。
| Tool | Default version | Environment variable | File |
|---|---|---|---|
| Go | 1.24.3 | GO_VERSION |
|
| Node.js | 22.16.0 | NODE_VERSION |
.nvmrc, .node-version |
| Python | 3.13.3 | PYTHON_VERSION |
.python-version, runtime.txt |
| Ruby | 3.4.4 | RUBY_VERSION |
.ruby-version |
| Tool | Default version | Environment variable |
|---|---|---|
| Bun | 1.2.15 | BUN_VERSION |
| Hugo | extended_0.147.7 | HUGO_VERSION |
| npm | 10.9.2 | |
| yarn | 4.9.1 | YARN_VERSION |
| pnpm | 10.11.1 | PNPM_VERSION |
| pip | 25.1.1 | |
| gem | 3.6.9 | |
| poetry | 2.1.3 | |
| pipx | 1.7.1 | |
| bundler | 2.6.9 |
如果你需要覆盖镜像中语言或工具的特定版本,可以将其指定为构建环境变量,或如上所示在源代码中设置相关文件。
要使用构建环境变量设置版本,可以:
- 找到语言和工具的环境变量名称及所需版本(例如
NODE_VERSION = 22) - 在 Worker 项目中前往 Settings(设置) > Build > Build Variables and Secrets,在仪表板上添加并保存环境变量
或者,要通过向项目添加文件来设置版本,可以:
- 找到语言和工具的文件名(例如
.nvmrc) - 将指定的文件名添加到根目录,并将所需版本号设置为文件内容。例如,如果版本号为 22,文件应包含 '22'。
你可以添加以下构建变量以禁用自动依赖安装,改为运行自定义安装命令。
| Build variable | Value |
|---|---|
SKIP_DEPENDENCY_INSTALL |
1 or true |
在下表中查看构建镜像中预装的软件包。这些软件包使用 apt(Linux 发行版的包管理器)安装。
curl |
libbz2-dev |
libreadline-dev |
git |
libc++1 |
libssl-dev |
git-lfs |
libdb-dev |
libvips-dev |
unzip |
libgdbm-dev |
libyaml-dev |
autoconf |
libgdbm6 |
tzdata |
build-essential |
libgbm1 |
wget |
bzip2 |
libgmp-dev |
zlib1g-dev |
gnupg |
liblzma-dev |
zstd |
libffi-dev |
libncurses5-dev |
Workers Builds 在以下环境中运行:
| Build Environment | Ubuntu 24.04 |
| Architecture | x86_64 |
预装软件(语言和工具)将在到达生命周期结束(EOL)之前更新。这些更新仅在你未覆盖默认版本时适用。
- 次要版本更新:可能会在没有通知的情况下更新到最新的可用次要版本。对于不遵循语义化版本控制的工具(例如 Bun 或 Hugo),可能包含破坏性更改的更新将提前 3 个月通知。
- 主要版本更新:更新到下一个稳定的长期支持(LTS)版本,提前 3 个月通知。
你将如何收到通知(对于需要通知的更改):
- Cloudflare 更新日志
- 将收到更新的项目的仪表板通知
- 发送给项目所有者的电子邮件通知
要维护特定版本并避免自动更新,请覆盖默认版本。
为避免意外的构建失败:
- 关注公告:通过 Cloudflare 更新日志、仪表板通知和电子邮件
- 固定特定版本:通过覆盖默认版本固定关键预装软件的特定版本