使用 Kamal 进行部署

有人使用 Kamal 部署过 Discourse 吗?

我想可以通过使用 独立模板,或者编写一个将所有依赖容器作为附属组件的 deploy.yml 来实现。

文档指出独立模板的缺点是在升级时停机时间较长,但使用 Kamal 则不会出现这种情况,因为它支持零停机部署(它会保留旧容器,并仅在新容器返回 HTTP 200 响应时才将反向代理切换到新容器)。

但这行不通,因为你不能同时让两个容器访问同一个 PostgreSQL 数据库。你需要构建自己的容器,使其在启动时执行迁移,或者使用目前尚不支持的、具备类似功能的新容器。你需要找一位既了解 Discourse 又熟悉 Kamal 的人来搞定这件事。由于目前还没有人回复,看来这里并没有这样的人。

建议先按照标准流程进行安装,然后再研究如何与 Kamal 配合使用。