最近我们的一些测试容器的启动时间出现了问题:慢速计算机无法在硬编码 30 秒内启动容器。
通过将我们所有的检查移至具有可配置超时的 WaitStrategy 来解决问题。
是否有任何理由保留这两项检查?在 StartupCheckStrategy 和 WaitStrategy 中应该检查什么?
最近我们的一些测试容器的启动时间出现了问题:慢速计算机无法在硬编码 30 秒内启动容器。
通过将我们所有的检查移至具有可配置超时的 WaitStrategy 来解决问题。
是否有任何理由保留这两项检查?在 StartupCheckStrategy 和 WaitStrategy 中应该检查什么?
对不起,这有点混乱!
StartupCheckStrategy
用于检查 Docker 是否成功启动了容器。有几种不同的变体,但基本上只是“容器是否达到了 RUNNING 状态?”。
然而,仅仅因为容器正在运行,并不意味着它实际上已经准备好做任何有用的事情(例如接受连接或工作)——这就是WaitStrategy
它的用途。默认的等待检查只是简单地探测以确保 TCP 端口正在侦听,但您可以使用更复杂的检查来覆盖这些检查,例如尝试通过驱动程序建立连接或查找日志字符串。
听起来您通过将检查移至WaitStrategy
实现来做正确的事情。再次抱歉,这令人困惑;我们显然需要在文档上做一些工作,以使其更容易理解和更一致。