Nixpacks 是由 Railway 创建的开源构建包,源代码可在 Github 上获取。Coolify 将 Nixpacks 用作其构建包之一。
Nixpacks 会检查你的 Git 仓库(在 Nixpacks 中也称为**“源目录”**),并生成一个 Dockerfile,然后基于生成的 Dockerfile 构建 Docker 镜像。
Nixpacks 可以部署完全静态的网站和非静态应用程序。设置好仓库后,你可以轻松使用 Coolify 部署你的项目。
如何使用 Nixpacks?
在 Coolify 中,你只能在基于 Git 的部署中使用 Nixpacks。
1. 在 Coolify 中创建新资源
在 Coolify 仪表板中打开你的项目,然后点击 创建新资源 按钮。
2. 选择你的部署选项
A. 如果你的 Git 仓库是公开的,请选择 公共仓库 选项。
B. 如果你的仓库是私有的,你可以选择 Github App 或 部署密钥。(这些方法需要额外的配置。如有需要,你可以查看有关设置 Github App 或 部署密钥 的指南。)
3. 选择你的 Git 仓库
如果你使用的是公共仓库,请在提示时粘贴你的 GitHub 仓库 URL。其他选项的步骤非常相似。
4. 选择构建包
Coolify 默认会使用 Nixpacks。如果没有,请点击选择 Nixpacks 作为你的构建包。
5. 配置构建包
我们有不同的选项,如基础目录、发布目录和端口,这些选项会根据你部署的应用程序(静态网站/应用程序)略有不同。因此,下面有两个关于 Nixpacks 可能部署的部分。
如何部署完全静态网站?
首先,按照本文档的前一部分操作:如何使用 Nixpacks。之后,继续执行以下步骤。
-
分支: Coolify 会自动从你的仓库中检测分支。
-
基础目录: 输入 Nixpacks 应用作根目录的目录(例如,如果你的文件在根目录下,则输入
/,或者如果有子文件夹则输入相应的子文件夹)。- 如果你使用的是 monorepo,则可以输入你想用作基础目录的目录路径(例如
/backend)
- 如果你使用的是 monorepo,则可以输入你想用作基础目录的目录路径(例如
-
是静态站点吗? 点击此选项以启用静态模式。
-
端口: 一旦你启用了
是静态站点吗,端口将自动设置为80且不可更改。(这是有意为之) -
发布目录: 一旦你启用了
是静态站点吗,此发布目录选项将在 UI 上可见。你必须输入生成静态文件的输出目录(通常是/dist)。 -
设置好上述所有设置后,点击 继续 按钮。
-
为你的静态网站选择 Web 服务器
- 截至 Coolify v4.0.0-beta.404,唯一的 Web 服务器选项是 Nginx。因此默认会选择 Nginx。
-
点击 部署 按钮。部署过程通常很快(通常少于一分钟,具体取决于你的服务器)。
-
自定义你的 Web 服务器配置
可选
-
Coolify 提供了一个适用于大多数情况的默认 Web 服务器配置。
-
如果你想更改它,请点击 生成 按钮加载默认设置并进行你需要的任何更改。
注意!
你必须点击 重启 按钮才能使新配置生效。
工作原理?
Nixpacks 将使用你的代码库构建网站,并创建一个带有 Web 服务器的 Docker 镜像来提供服务。这意味着你的最终 Docker 镜像已经准备好提供 HTML、CSS 和 JavaScript 文件。
如何部署非静态网站/应用程序?
首先,按照本文档的前一部分操作:如何使用 Nixpacks。之后,继续执行以下步骤。
-
分支: Coolify 会自动从你的仓库中检测分支。
-
基础目录: 输入 Nixpacks 应用作根目录的目录(例如,如果你的文件在根目录下,则输入
/,或者如果有子文件夹则输入相应的子文件夹)。- 如果你使用的是 monorepo,则可以输入你想用作基础目录的目录路径(例如
/backend)
- 如果你使用的是 monorepo,则可以输入你想用作基础目录的目录路径(例如
-
端口: 输入你的应用程序监听传入请求的端口。
-
是静态站点吗? 保持未选中状态,因为你正在部署非静态应用程序。
-
配置好上述所有选项后,点击 继续 按钮。
-
点击 继续 按钮后,你可以调整域名和环境变量等设置,然后点击 部署 按钮启动你的应用程序。
工作原理?
Nixpacks 分析你的代码库,构建 Docker 镜像,然后使用该镜像启动容器。
高级配置
环境变量
你可以使用环境变量来自定义 Nixpacks 的行为。有许多变量可用于不同的应用程序框架,你可以在其文档中找到详细信息:Nixpacks 环境变量。
要在 Coolify 中添加或修改变量,只需点击 环境变量 标签页,即可轻松管理它们。
命令
如果需要,你可以覆盖默认的 install、build 和 start 命令。只需滚动到 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 归档 的信息。
