Coolify logoCoolify

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 的同一团队构建。主要区别包括:

RailpackNixpacks
配置文件railpack.json (JSON)nixpacks.toml (TOML)
构建系统Docker BuildKit 带前端原生 Docker 构建
包管理器MiseNix
环境变量前缀RAILPACK_*NIXPACKS_*
维护状态积极开发中维护模式
在 Coolify 中的状态Beta稳定

两种构建包都支持自动语言检测、静态站点部署、自定义安装/构建/启动命令和环境变量配置。

On this page