Railpack
Railpack 是由 Railway 创建的开源构建包,作为 Nixpacks 的继任者。源代码可在 GitHub 上获取。Coolify 使用 Railpack 作为其构建包之一。
Railpack 检查你的 git 仓库并自动检测你的编程语言,安装依赖项,并配置构建和启动命令——所有这些都不需要任何配置。然后,它使用 BuildKit 构建一个优化的 Docker 镜像。
Railpack 可以部署完全静态的网站和非静态应用程序。一旦你的仓库设置完成,你可以使用 Coolify 轻松部署你的项目。
如何使用 Railpack?
在 Coolify 上,你只能在基于 git 的部署中使用 Railpack。
设置步骤与 Nixpacks 相同——遵循 Nixpacks 指南,但在构建包选择器中选择 Railpack 而不是 Nixpacks(第 4 步)。
Beta
Railpack 目前在 Coolify 中被标记为 Beta。它功能齐全,但随着其成熟可能会发生变化。
部署静态网站
使用 Railpack 部署完全静态网站的步骤与 Nixpacks 相同。遵循 Nixpacks 静态站点指南——唯一的区别是选择了 Railpack 作为构建包。
部署非静态应用程序
使用 Railpack 部署非静态应用程序的步骤与 Nixpacks 相同。遵循 Nixpacks 非静态指南——唯一的区别是选择了 Railpack 作为构建包。
高级配置
环境变量
你可以使用以 RAILPACK_ 开头的环境变量来自定义 Railpack 的行为。以下是可用的变量:
| 变量 | 描述 |
|---|---|
RAILPACK_BUILD_CMD | 覆盖 Railpack 检测到的构建命令 |
RAILPACK_INSTALL_CMD | 覆盖 Railpack 检测到的安装命令 |
RAILPACK_START_CMD | 覆盖容器的启动命令 |
RAILPACK_PACKAGES | 安装额外的 Mise 包(格式:pkg[@version],空格分隔) |
RAILPACK_BUILD_APT_PACKAGES | 在构建阶段安装额外的 apt 包(空格分隔) |
RAILPACK_DEPLOY_APT_PACKAGES | 在最终部署的镜像中安装额外的 apt 包(空格分隔) |
RAILPACK_DISABLE_CACHES | 禁用特定的 BuildKit 缓存键,或 * 禁用所有缓存 |
RAILPACK_VERBOSE | 启用构建期间的详细日志记录 |
有关更多详细信息,请参阅 Railpack 环境变量 文档。
要在 Coolify 中添加或修改变量,只需点击 环境变量 选项卡,在那里你可以轻松管理它们。
配置文件
Railpack 支持在 railpack.json 文件中指定构建配置。如果此文件存在于你的仓库根目录,它将被自动使用。例如:
{
"$schema": "https://schema.railpack.com",
"packages": {
"node": "22"
},
"steps": {
"install": {
"commands": ["npm install"]
},
"build": {
"commands": ["npm run build"]
}
},
"deploy": {
"startCommand": "node dist/index.js"
}
}在 railpack.json 中添加 $schema 可以在你的编辑器中启用自动补全和验证。
有关更多详细信息,请参阅 Railpack 配置文件 文档。
Railpack 与 Nixpacks
Railpack 是 Nixpacks 的继任者,由 Railway 的同一团队构建。主要区别包括:
| Railpack | Nixpacks | |
|---|---|---|
| 配置文件 | railpack.json (JSON) | nixpacks.toml (TOML) |
| 构建系统 | Docker BuildKit 带前端 | 原生 Docker 构建 |
| 包管理器 | Mise | Nix |
| 环境变量前缀 | RAILPACK_* | NIXPACKS_* |
| 维护状态 | 积极开发中 | 维护模式 |
| 在 Coolify 中的状态 | Beta | 稳定 |
两种构建包都支持自动语言检测、静态站点部署、自定义安装/构建/启动命令和环境变量配置。
