Bootstrap && destroy && start

这是一个非常基础的问题。

我有一个包含两个容器的设置,等待一个合适的时机启动它。

但为什么总是这样引导:

./launcher bootstrap .. && ./launcher destroy .. && ./launcher start ..

我大概明白,第一次运行时是这样的——好吧,说实话:我根本不明白 bootstrap 和 rebuild 之间的区别,但是万能的 AI 告诉我第一次运行时应该使用 bootstrapping,因为它是一些奇怪的开发人员的东西,之后每次使用 rebuild 就可以了。

那么……为什么不直接 ./launcher rebuild web_only 呢?因为如果我先销毁,万一 rebuild 失败,我就没有什么可以重新启动了,对吧?

我明白如果我更新所有东西,我必须先停止 web_only,然后是 data,最后是 web_only。

执行重建会关闭容器,然后运行引导程序,接着销毁旧容器,然后启动新容器。

重建不会销毁现有容器(直到有新容器可以替换它)。

如果引导程序失败,您可以自行重启旧容器。

第一次时,没有理由不执行重建。

对于后续构建,您需要执行引导程序,以便现有容器在构建新容器时可以继续处理请求。

对于数据容器,您始终需要重建,因为您不希望两个数据库实例修改相同的文件。

对于 PG 升级,您需要在重建数据容器之前停止所有操作(无论如何 Web 都无法在没有数据库的情况下运行)。

重建还会执行“git pull”,因此您可以使用引导程序来控制这一点。

4 个赞

我仍然难以理解容器的概念,但有很多东西超出了我的理解范围。

但现在我知道了顺序;是什么,什么时候,以及(几乎)为什么。

谢谢。

1 个赞

它就像整个计算机的硬盘。容器只是一个完整的计算机,它连接它的方式有限(通过端口或它们更新的可被操作系统访问的文件)。

1 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.