在depends_on
中,可以通过添加一个condition
属性来指定服务之间的启动条件。该condition
属性可以接受三个值:
condition: service_started
表示在依赖的服务启动之后,才启动本服务;condition: service_healthy
表示在依赖的服务健康检查通过之后,才启动本服务;condition: service_completed_successfully
表示在依赖的服务成功执行之后,才启动本服务。
需要注意的是,condition
属性仅适用于在version: '3.2'
及以上版本的docker-compose
中。
version: '3.8' services: db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: root web: build: . depends_on: db: condition: service_healthy
在这个配置文件中,web
服务依赖于db
服务,且指定了依赖条件为service_healthy
。这意味着在启动web
服务之前,需要先启动db
服务,并等待db
服务通过健康检查之后才会启动web
服务。