docker-compose depends_on condition 指定服务之间的启动条件

7 min read

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服务。