首页 > 其他 > 详细

docker swarm 模式服务之间启动顺序问题

时间:2021-05-10 20:27:44      阅读:56      评论:0      收藏:0      [点我收藏+]

结论:

一般的都是使用 depends_on 来指定启动顺序,而且存在依赖服务容器不会等待ready状态问题。

但是 在swarm 模式下,depends_on是无效的,可以采用wait-for-it.sh 脚本拖延启动,如果还有其他方法,欢迎补充。

 

下面是官方资料,地址

depends_on

表达服务之间的依赖性。服务依赖项导致以下行为:

  • docker-compose up以依赖性顺序启动服务。在以下示例中,dbredis在之前启动web
  • docker-compose up SERVICE自动包含SERVICE的依赖项。在下面的示例中,docker-compose up web还将创建并启动dbredis
  • docker-compose stop按依赖关系顺序停止服务。在以下示例中,webdb之前停止redis

简单的例子:

version: "3.9"
services:
  web:
    build: .
    depends_on:
      - db
      - redis
  redis:
    image: redis
  db:
    image: postgres

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

  • depends_on 不会在启动 web 之前等待db和redis变成 “ready” 状态如果您需要等待服务准备就绪,请参阅控制启动顺序以 获取有关此问题的更多信息以及解决该问题的策略。
  • deploying a stack in swarm模式下,3版本的Compose文件中 含有 depends_on,会忽略选项 

docker swarm 模式服务之间启动顺序问题

原文:https://www.cnblogs.com/xiaopan-cp9/p/14751731.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!