CapRover

应用配置


HTTP 设置

这里包含所有与 HTTP 相关的设置。如果你的应用不是 HTTP 应用,可以直接勾选“不作为 Web 应用暴露”。这适用于任何非 Web 应用的服务,例如 MongoDB、MySQL 之类的数据库。

HTTP 设置

默认情况下,你部署的任何 Web 应用都会被分配一个 Captain 域名,格式为:appname.root.domain.com。不过,你也可以为这个应用添加任意多个自定义域名,例如 www.myawesomeapp.commyawesomeapp.com

这里还有一些高级选项,例如“编辑默认 Nginx 配置”和“容器 HTTP 端口”,通常情况下你不需要修改。

启用 HTTPS

CapRover 内置支持 Let's Encrypt,让你可以轻松为网站启用安全的 HTTPS,而无需担心 SSL 证书费用(Let's Encrypt 免费),也不用为配置和证书续期而烦恼。

要为任意域名启用 HTTPS,只需要点击 enable HTTPS!几秒钟即可完成。

启用 HTTPS 后,你还可以选择(强烈推荐)对所有请求强制 HTTPS,即拒绝不安全的 HTTP 连接并将其重定向到 HTTPS。

应用配置

这里可以设置运行时配置与相关选项。

应用配置

环境变量

你能为应用设置的最基础配置之一就是环境变量。环境变量通常用于传入不写在代码里的数据,例如第三方服务的 API key、数据库连接 URI 等。

你可以在控制面板里直接设置环境变量,并在代码中动态读取,例如 NodeJS 使用 process.env.VAR_NAME_HERE,PHP 使用 $_ENV["VAR_NAME_HERE"]

如果你希望在构建阶段访问这些变量,可以在 Dockerfile 里使用 ARG 指令。

FROM imagename....
ARG VAR_NAME_HERE=${VAR_NAME_HERE}
ENV VAR_NAME_HERE=${VAR_NAME_HERE}

## At this point, "VAR_NAME_HERE" is available as an env var during your build,
## you can do something like this:
## RUN echo $VAR_NAME_HERE

除了你自己设置的变量外,CapRover 还会设置一个名为 CAPROVER_GIT_COMMIT_SHA 的环境变量,值为正在部署的完整 git commit SHA。该变量仅在 Docker 构建阶段可用,默认不会在应用运行时容器内可用。如果你希望在应用里使用它,可以参考如下方式:

FROM imagename....
ARG CAPROVER_GIT_COMMIT_SHA=${CAPROVER_GIT_COMMIT_SHA}
ENV CAPROVER_GIT_COMMIT_SHA=${CAPROVER_GIT_COMMIT_SHA}

端口映射

CapRover 允许你将容器端口映射到宿主机端口。如果你希望某个应用/容器的特定端口可以被公网访问,就应该使用此功能。最常见的场景是:你想从本地机器 连接到某个数据库容器

注意,即使你没有设置任何端口映射,同一 Captain 集群内的其他容器仍然可以访问该容器的所有端口。因此,只有在你希望端口对公网可访问时才需要配置端口映射。同时请确保防火墙放行了对应端口,详见 firewall settings

例如,如果你只是希望 NodeJS 应用访问 MongoDB 数据库,而不需要从笔记本电脑访问 MongoDB,那么就不需要端口映射。你可以直接使用 MongoDB 实例的完整内部域名:srv-captain--mongodb-app-name(将 mongodb-app-name 替换为你创建的应用名)。

持久化目录

仅用于 persistent apps

节点 ID

仅用于 persistent apps。如果你有一个服务器集群,持久化应用需要固定在某个特定节点上运行。NodeId 用于指定该应用应锁定到哪个节点。

服务标签

自 1.11 起提供

你可以为 CapRover 服务打上特殊标签,以便在列表中更好地对应用进行分组和查看。

实例数量

设置该应用同时运行多少个实例。你可以按需运行任意数量的实例,但会受硬件资源限制。如果你提高该数值而 RAM 或磁盘空间不足,系统可能会崩溃。建议在增加实例数量前评估性能影响和资源余量。

预部署函数

这是一个非常危险且高级的选项。除非你非常清楚自己在做什么,否则不要使用它。