我已经在Dockerfile
服务中使用,该服务依赖于另一服务,但是我想在不 service_healthy
时取消条件。与以下内容相反:
service1:
depends_on:
service2:
condition: service_healthy
因此,基本上我想在service2运行不正常时启动service1。
第二,基于documentation for depends_on
,condition
选项已被删除,在Compose文件格式的版本3中不再受支持。
那么如何实现以上逻辑?
答案 0 :(得分:0)
这是一种解决方法,其中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
另请参阅:Docker compose - Start service only when other service had completed