应用程序
应用程序可以是任何类型的 Web 应用程序。它可以是一个静态站点、一个 NodeJS 应用程序、一个 PHP 应用程序等。
对于复杂的应用程序,您可以使用基于 Docker Compose 的部署或一键式服务。
部署工作原理
Coolify 将所有应用程序作为 Docker 容器进行部署。这意味着您的应用程序在服务器上的隔离容器中运行。
关键概念:
- Docker 镜像: 包含所有依赖项的应用程序打包版本
- 容器: 您的 Docker 镜像的运行实例
- 构建过程: 将您的源代码转换为可用于部署的 Docker 镜像
您有两种部署应用程序的选项:
- 在 Coolify 上构建: 使用 构建包 从您的源代码自动创建 Docker 镜像
- 使用预构建镜像: 从 Docker Hub 或 GitHub Container Registry 等注册表部署现有镜像
资源管理
构建 Docker 镜像可能非常消耗资源。您可以使用专用的 构建服务器 将构建与生产服务器分开处理。
示例
列表不完整。
您可以托管几乎任何您想要的应用程序,而不仅仅是这里列出的那些。
常规配置
命令
您可以通过在 UI 上设置自定义值来覆盖默认命令。
- 构建
- 安装
- 启动
如果留空,Nixpacks 将检测需要运行哪些命令。例如,在 Nodejs 中,它将检查锁文件并相应地运行 npm ci 或 yarn install 或 pnpm install。
基础目录
这对于 monorepos 很有用。您可以为 Coolify 执行的所有命令设置基础目录。
公共目录
如果您正在构建静态站点,设置公共目录非常重要,这样构建器才知道要提供哪个目录。
端口暴露
端口暴露是 Docker 引擎知道要暴露哪些端口所必需的。第一个端口将是健康检查的默认端口。
示例:
如果您有一个监听端口 3000 的 NodeJS 应用程序,您可以这样设置:3000。
如果您有一个监听端口 9000 的 PHP-FPM 应用程序,您可以这样设置:9000。
如果您有一个监听端口 80 的 Nginx 服务器,您可以这样设置:80。
端口映射
如果您将端口映射到主机系统,您将失去一些功能,例如
滚动更新。
如果您想将端口映射到主机系统(服务器),您可以像这样在这里进行:8080:80。
这将把主机系统上的端口 8080 映射到容器内的端口 80。
如果您想要获得性能提升,并且不需要任何域名 (具有 VERY 高流量的 websocket 服务器),您可以将其端口映射到主机, 这样请求就不会经过代理。
高级
静态站点(是静态站点吗?)
此功能仅适用于 Nixpacks 构建包。
如果您需要提供一个静态站点(SPA、HTML 等),您可以将其设置为 true。它将由 Nginx 提供。默认禁用。
强制 HTTPS
如果您想强制使用 HTTPS,即不允许任何 HTTP 连接,您可以将其设置为 true。默认启用。
自动部署
此功能仅适用于基于 GitHub App 的仓库。
如果您希望在向仓库推送新提交时自动部署,您可以将其设置为 true。默认启用。
预览部署
预览部署是在将应用程序合并到主分支之前测试应用程序的好方法。想象一下它就像一个暂存环境。
URL 模板
您可以使用自定义模板设置预览 URL。默认值为 {{pr_id}}.{{domain}}。
这意味着如果您打开一个 ID 为 123 的 Pull Request,并且您的资源域名为 example.com,那么预览 URL 将是 123.example.com。
提示
如果您为资源拥有多个域名,第一个域名将用作 {{ domain }} 部分。
自动化预览部署
此功能仅适用于基于 GitHub App 的仓库。
如果您想部署应用程序的预览版本(基于 Pull Requests),您可以将其设置为 true。默认禁用。
如果设置为 true,所有针对资源配置的分支打开的 PR 都将部署到一个唯一的 URL。
手动触发的预览部署
您可以通过在 Pull Request 页面上单击 Deploy 按钮来手动将 Pull Request 部署到一个唯一的 URL。
Git 子模块
如果您正在使用 git 子模块,您可以将其设置为 true。默认启用。
Git LFS
如果您正在使用 git lfs,您可以将其设置为 true。默认启用。
环境变量
持久化存储
健康检查
默认情况下,所有容器都会检查存活状态。
如果容器定义了健康检查,但状态为
不健康,Traefik 代理将无法工作。如果您不知道如何设置健康检查,请将其关闭。
回滚
您可以回滚到资源的前一个版本。目前,仅支持本地镜像,因此您只能回滚到本地可用的 docker 镜像。
资源限制
默认情况下,容器没有任何资源限制。您可以在此处设置限制。有关更多详细信息,请阅读 Docker 文档。
部署类型
有几种可用的应用程序部署类型。
- 公共 Git 仓库
- 私有 Git 仓库 (GitHub App)
- 私有 Git 仓库 (部署密钥)
- 基于 Dockerfile
- 基于 Docker Compose
- 基于 Docker 镜像
构建包
构建包有助于将您的源代码转换为 Docker 镜像。Coolify 支持几种构建包选项以满足不同的部署需求:
- Nixpacks - 自动检测和构建(推荐用于大多数应用程序)
- 静态 - 用于静态站点和 SPA
- Dockerfile - 使用您自己的自定义 Dockerfile
- Docker Compose - 用于多服务应用程序
- Docker 镜像 - 从注册表部署预构建镜像
有关每个构建包的详细指南,请参阅 构建包部分。
快速入门
Coolify 默认使用 Nixpacks,它会自动检测您的应用程序类型并相应地构建它。对于大多数应用程序,您无需进行任何配置。
