2

最近我们的一些测试容器的启动时间出现了问题:慢速计算机无法在硬编码 30 秒内启动容器。

通过将我们所有的检查移至具有可配置超时的 WaitStrategy 来解决问题。

是否有任何理由保留这两项检查?在 StartupCheckStrategy 和 WaitStrategy 中应该检查什么?

4

1 回答 1

3

对不起,这有点混乱!

StartupCheckStrategy用于检查 Docker 是否成功启动了容器。有几种不同的变体,但基本上只是“容器是否达到了 RUNNING 状态?”。

然而,仅仅因为容器正在运行,并不意味着它实际上已经准备好做任何有用的事情(例如接受连接或工作)——这就是WaitStrategy它的用途。默认的等待检查只是简单地探测以确保 TCP 端口正在侦听,但您可以使用更复杂的检查来覆盖这些检查,例如尝试通过驱动程序建立连接或查找日志字符串。

听起来您通过将检查移至WaitStrategy实现来做正确的事情。再次抱歉,这令人困惑;我们显然需要在文档上做一些工作,以使其更容易理解和更一致。

于 2017-12-19T09:45:13.483 回答