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