在 docker-compose 版本 3 中,depends_on 的条件形式的替代方案是什么?

新手上路,请多包涵

docker-compose 2.1 提供了一个很好的特性来指定 conditiondepends_on 。当前的 docker-compose 文档指出:

版本 3 不再支持depends_on 的条件形式。

不幸的是, 文档 没有解释为什么 condition 表格被删除,并且缺乏关于如何使用 V3 向上实现该行为的任何具体建议。

原文由 m o 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.9k
2 个回答

已经远离在 compose 中指定容器依赖项。它们仅在启动时有效,并且在依赖容器在运行时重新启动时不起作用。相反,每个容器都应该包括在连接断开时重试重新连接到依赖服务的机制。许多用于连接数据库或 REST API 服务的库都具有可配置的内置重试。我会调查的。无论如何,生产代码都需要它。

原文由 Bernard 发布,翻译遵循 CC BY-SA 3.0 许可协议

1.27.0 开始,2.x 和 3.x 与 COMPOSE_SPEC 模式合并。

版本 现在是可选的。因此,您可以像以前一样删除它并指定一个 条件

 services:
  web:
    build: .
    depends_on:
      redis:
        condition: service_healthy
  redis:
    image: redis
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 1s
      timeout: 3s
      retries: 30

原文由 quanta 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进