Using depend_on with stack



depends_on的文档状态:

使用depends_on时需要注意以下几点:

  • depends_on在启动web之前不等待dbredis"准备好"-只在它们启动之前。如果你需要等待要使服务准备就绪,请参见控制启动顺序了解更多信息这个问题和解决它的策略。

  • depends_on选项在使用3版本的Compose文件以swarm模式部署堆栈时被忽略。

所以,这是否意味着当我使用集群模式和版本3撰写文件部署时,它将忽略depends_on下的所有条件?例如:

version: "3"
services:
web:
build: .
ports:
- "80:8000"
depends_on:
- "db"
command: ["./wait-for-it.sh", "db:5432", "--", "python", "app.py"]
db:
image: postgres

非常正确,swarm作为业务流程将忽略depends_on

为你的场景,但depends_on真的没有必要为你已经比depends_onwait-for-it.sh具有更好地控制保证开始秩序。

您可以使用depends_on选项控制服务启动和关闭的顺序。Compose总是按照依赖顺序启动和停止容器,其中的依赖由depends_on、links、volumes_from和network_mode决定:"service:…"

然而,在启动时,Compose不会等到容器"准备好"(不管这对你的特定应用程序意味着什么)——只会等到它运行。这是有原因的。

第一个解决方案存在局限性。例如,它不会验证特定的服务何时真正准备好。

或者,编写您自己的包装器脚本来执行更特定于应用程序的运行状况检查。例如,您可能希望等待,直到Postgres准备好接受命令

详细信息请参见在撰写中控制启动和关闭顺序,因此您的解决方案中不需要depends_on

相关内容

  • 没有找到相关文章