Coolify logoCoolify
Coolify 横幅

Nixpacks 是由 Railway 创建的开源构建包,源代码可在 Github 上获取。Coolify 将 Nixpacks 用作其构建包之一。

Nixpacks 会检查你的 Git 仓库(在 Nixpacks 中也称为**“源目录”**),并生成一个 Dockerfile,然后基于生成的 Dockerfile 构建 Docker 镜像。

Nixpacks 可以部署完全静态的网站和非静态应用程序。设置好仓库后,你可以轻松使用 Coolify 部署你的项目。

如何使用 Nixpacks?

在 Coolify 中,你只能在基于 Git 的部署中使用 Nixpacks。

1. 在 Coolify 中创建新资源

在 Coolify 仪表板中打开你的项目,然后点击 创建新资源 按钮。

Coolify 仪表板截图

2. 选择你的部署选项

Coolify 仪表板截图

A. 如果你的 Git 仓库是公开的,请选择 公共仓库 选项。

B. 如果你的仓库是私有的,你可以选择 Github App部署密钥。(这些方法需要额外的配置。如有需要,你可以查看有关设置 Github App部署密钥 的指南。)

3. 选择你的 Git 仓库

如果你使用的是公共仓库,请在提示时粘贴你的 GitHub 仓库 URL。其他选项的步骤非常相似。

Coolify 仪表板截图

4. 选择构建包

Coolify 默认会使用 Nixpacks。如果没有,请点击选择 Nixpacks 作为你的构建包。

Coolify 仪表板截图

5. 配置构建包

我们有不同的选项,如基础目录、发布目录和端口,这些选项会根据你部署的应用程序(静态网站/应用程序)略有不同。因此,下面有两个关于 Nixpacks 可能部署的部分。

如何部署完全静态网站?

首先,按照本文档的前一部分操作:如何使用 Nixpacks。之后,继续执行以下步骤。

Coolify 仪表板截图
  1. 分支: Coolify 会自动从你的仓库中检测分支。

  2. 基础目录: 输入 Nixpacks 应用作根目录的目录(例如,如果你的文件在根目录下,则输入 /,或者如果有子文件夹则输入相应的子文件夹)。

    • 如果你使用的是 monorepo,则可以输入你想用作基础目录的目录路径(例如 /backend
  3. 是静态站点吗? 点击此选项以启用静态模式。

  4. 端口: 一旦你启用了 是静态站点吗,端口将自动设置为 80 且不可更改。(这是有意为之)

  5. 发布目录: 一旦你启用了 是静态站点吗,此发布目录选项将在 UI 上可见。你必须输入生成静态文件的输出目录(通常是 /dist)。

  6. 设置好上述所有设置后,点击 继续 按钮。

  7. 为你的静态网站选择 Web 服务器

Coolify 仪表板截图
  • 截至 Coolify v4.0.0-beta.404,唯一的 Web 服务器选项是 Nginx。因此默认会选择 Nginx
  1. 点击 部署 按钮。部署过程通常很快(通常少于一分钟,具体取决于你的服务器)。

  2. 自定义你的 Web 服务器配置 可选

Coolify 仪表板截图
  • Coolify 提供了一个适用于大多数情况的默认 Web 服务器配置。

  • 如果你想更改它,请点击 生成 按钮加载默认设置并进行你需要的任何更改。

注意!

你必须点击 重启 按钮才能使新配置生效。

工作原理?

Nixpacks 将使用你的代码库构建网站,并创建一个带有 Web 服务器的 Docker 镜像来提供服务。这意味着你的最终 Docker 镜像已经准备好提供 HTML、CSS 和 JavaScript 文件。

如何部署非静态网站/应用程序?

首先,按照本文档的前一部分操作:如何使用 Nixpacks。之后,继续执行以下步骤。

Coolify 仪表板截图
  1. 分支: Coolify 会自动从你的仓库中检测分支。

  2. 基础目录: 输入 Nixpacks 应用作根目录的目录(例如,如果你的文件在根目录下,则输入 /,或者如果有子文件夹则输入相应的子文件夹)。

    • 如果你使用的是 monorepo,则可以输入你想用作基础目录的目录路径(例如 /backend
  3. 端口: 输入你的应用程序监听传入请求的端口。

  4. 是静态站点吗? 保持未选中状态,因为你正在部署非静态应用程序。

  5. 配置好上述所有选项后,点击 继续 按钮。

  6. 点击 继续 按钮后,你可以调整域名和环境变量等设置,然后点击 部署 按钮启动你的应用程序。

工作原理?

Nixpacks 分析你的代码库,构建 Docker 镜像,然后使用该镜像启动容器。

高级配置

环境变量

你可以使用环境变量来自定义 Nixpacks 的行为。有许多变量可用于不同的应用程序框架,你可以在其文档中找到详细信息:Nixpacks 环境变量

要在 Coolify 中添加或修改变量,只需点击 环境变量 标签页,即可轻松管理它们。

Coolify 仪表板截图

命令

如果需要,你可以覆盖默认的 install、build 和 start 命令。只需滚动到 Coolify 上的构建部分并输入你的自定义命令即可。

Coolify 仪表板截图

注意:

你可能需要在你的仓库中包含一个 nixpacks.toml 文件才能使这些更改生效。


配置文件

Nixpacks 支持在 nixpacks.toml 或 nixpacks.json 文件中指定构建配置。如果这些文件之一存在于你的仓库根目录中,它将被自动使用。更多详细信息,请参阅 Nixpacks 文档


Node.js 多核扩展

普通的 Node.js 进程仅使用一个 CPU 核心。要使 Node.js(或 Bun)应用程序在单个 Nixpacks 构建中使用主机上的每个核心,请参阅 Node.js 多核扩展 指南。

已知问题

过期的包/依赖项

有时,Nixpacks 可能会使用比你需要的更旧的包版本。这在 Node.js 中尤其常见,你可能需要特定的次要版本或补丁版本。

有关 Node.js 版本锁定,请参阅专门的 Node.js 版本控制 指南。

对于其他包,你可以在 nixpacks.toml 文件中更新 nixpkgs 归档版本。在 Nixpacks 文档中了解更多关于 nixpkgs 归档 的信息。

On this page