docker-compose - 不健康时如何启动服务?
问题描述
我的Dockerfile
服务依赖于另一项服务,但我想在不 service_healthy
服务时否定条件。所以与以下相反:
service1:
depends_on:
service2:
condition: service_healthy
所以基本上我想在 service2 不健康时启动 service1。
其次,根据 的文档depends_on
,该condition
选项已被删除,并且 Compose 文件格式的版本 3 不再支持该选项。
那么如何实现上述逻辑呢?
解决方案
这是main
容器等待其他主机退出的解决方法,方法是 ping 其他主机并在两者都离线时等待:
version: '3'
services:
main:
image: bash
depends_on:
- test01
- test02
command: bash -c "sleep 2 && until ! ping -qc1 test01 && ! ping -qc1 test02; do sleep 1; done &>/dev/null"
networks:
intra:
ipv4_address: 172.10.0.254
test01:
image: bash
hostname: test01
command: bash -c "ip route && sleep 10"
networks:
intra:
ipv4_address: 172.10.0.11
test02:
image: bash
hostname: test02
command: bash -c "ip route && sleep 20"
networks:
intra:
ipv4_address: 172.10.0.12
networks:
intra:
driver: bridge
ipam:
config:
- subnet: 172.10.0.0/24
推荐阅读
- javascript - 在客户端执行过滤并在服务器端进行搜索
- java - 从 SCDF 启动任务时如何解决执行“java.lang.IllegalArgumentException: Invalid TaskExecution, ID 3”?
- swift - 过滤 Firebase 数据 SwiftUI
- apache-royale - apache Royale 现在支持双向数据绑定吗?
- html - 注册后欢迎电子邮件中的添加到日历按钮
- javascript - 不起作用,Javascript 在单击按钮之前验证文本输入
- shell - 是否有任何 Dart 资源可以将命令行字符串拆分为列表
论据? - amazon-web-services - AWS S3 CLI 在使用 mv 命令时创建多个目录
- javascript - 如何将表单变量和画布图片发送到 php 服务器?
- java - Hamcrest 检查值是否为空或空数组