等待Docker Compose集群启动后

3
我正在使用Docker Compose进行集成测试。使用Docker Compose启动集群后,我需要等待一些时间,直到应用程序及其缓存正常运行。我知道可以使一个容器在启动另一个容器之前等待,但是否有一种方法可以使整个设置等待?
提前感谢你的帮助!

嗨,有些进程会自动运行,您想在运行这些进程之前等待吗? - Kilian
@Kilian,基本上我想等应用程序启动后再运行测试。 - Dmitry Senkovich
曾经遇到过同样的问题,特别是在处理数据库时,会出现一些奇怪的应用程序错误,导致一段时间无法使用。最终我选择了 endly(https://github.com/viant/endly/)来管理我的 Docker 数据库工作流程,它可以通过各种驱动程序或 REST API 进行主动检查,以确保 Docker 应用程序/服务已准备就绪。 - Adrian
1个回答

3
你需要理清“集群已启动”的意思。Docker 对于每个容器内部应用程序的运行情况并不关心,只要它没有终止即可。
如果你需要等待容器内部的某些状态转换,则需要在应用程序级别上进行管理。例如,你可以在从容器公开的文件系统中写入文件,或者在其他地方发送 HTTP POST 消息。然后获取该消息并使用它来启动集成测试。我强烈建议重复使用用于监视基础架构的工具,因为这本质上是相同的问题。

有道理,谢谢!但是有些检查可以确保应用程序正常运行。因此,我想在循环中检查某些URL,我们已经在Jenkins管道中有了它,但我希望将其与docker compose集成起来。 - Dmitry Senkovich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接