我们需要使用docker stack部署我们的4个应用程序(3个spring boot应用程序和1个zookeper)。正如我们的DevOps家伙告诉我们的那样,没有办法在docker堆栈中定义哪个应用程序将依赖于另一个应用程序,例如docker compose,因此,作为开发人员,我们需要在代码中解决它。
您能告诉我怎么做或最好的方法是什么?必须首先启动我们的一个应用程序,因为该应用程序管理数据库(迁移等)。准备数据库后,Next可以启动其他应用程序。有任何想法吗?谢谢。
答案 0 :(得分:0)
如果您想在一个Docker容器中运行所有4个应用程序,则可以参考这篇文章Run multiple services in a container
如果您要泊坞窗组成这四个应用程序,则可以参考此帖子startup order,它使用 depends_on 您的其他应用程序图像
无论采用哪种方式,都必须编写脚本来检查第一个应用程序是否已经完成了对数据库的管理,您可以参考 wait-for-postgres.sh 了解如何在外壳中使用 sleep 反复检查您的第一个应用程序状态
例如,我可以建议的更精确的方法是