你好,Jay @pfaffman,感谢你发布的这篇帖子,以及关于这个“双容器”主题的其他帖子,包括 Sam 在这方面写的文章。
问题:
我们一直在尝试按照你提到的方式设置两个容器:一个用于 data,另一个用于 web-only,但在 macOS 上运行过程中遇到了不少阻碍。
不过,在担心如何在 macOS 或 Ubuntu 上调试这个“双容器配置”之前,我们想先确认这样做是否出于正确的理由。
我们想要进行“双容器操作”的原因是,希望在重建 Web 应用(例如安装插件时)时,网站不会停机。此外,当我们调整自研插件时,有时发现唯一能确保更改生效的方法就是重建(这是另一天的故事)。我也一直在努力搭建一个“快速且友好”的 Web 开发环境,但尚未达到满意程度;不过这也是另一个话题。
所以,我的问题是:“双容器”设置是否能显著减少仅重建 Web 部分应用时的停机时间?
这样理解是正确的,对吧?
当我们安装插件或对其进行调整时,是否只需要重建“web-only”的 yml 文件,而不需要重建 data yml 文件?
我们来自 LAMP 论坛背景,因此对插件的更改大多可以在生产环境中实时完成(除非操作失误,否则不会停机)。此外,我们也曾开发过一些 VueJS Web 应用,在桌面端构建后,只需上传并将新应用部署到位,升级/更新 VueJS 部分几乎不会造成停机。然而,在使用 Discourse 时,我们会遇到停机时间,这是我们不希望发生的(哪怕只有几秒钟)。
“双容器”方案在我们执行以下操作时,是否能显著减少停机时间:(1) 重建应用(用于插件、代码调整等)或 (2) 从完整备份恢复?
我觉得再次提出这个问题可能会“挨骂”,因为我们正在寻找一种在生产环境中运行 Discourse 并实现近乎零停机更改的方法,而目前尚未找到像 LAMP 或 VueJS 应用那样容易实现的方式。
因此,我们才对“双容器”方法如此感兴趣并努力尝试,但至今尚未成功部署。
谢谢!