如何对Yaml文件中定义的不同服务强制执行启动顺序?

时间:2018-11-12 11:01:40

标签: docker docker-compose yaml dockerfile

我有一个local.yml文件,其中定义了3个服务:service3依赖于service2service2依赖于service1。我要在它们之间强制执行一个启动顺序:service1启动冷杉,然后是service2,然后是service3。对我来说非常重要的是,service3是最后一个开始的人。

我试图做的是在service3内添加以下代码:

services:
  service3:
    healthcheck:
      test: curl http://localhost:8080/someUrl || exit 1
      interval: 10s
    build:
      context: ./myDir
      dockerfile: ./dockerfile3
    depends_on:
      - service2

  service2:
    build:
      context: .
      dockerfile: /dockerfile2
    depends_on:
      - service1   

  service1:
    image: service1_image

但是http://localhost:8080/someUrlserivce2完成启动之前可用。我现在在日志中看到的内容(作为开始顺序)如下:

service1      |.......
service1      |.......
service2      |.......
service2      |.......
service3      |....... //starts after the url is available
service3      |....... //prints that service3 is available
service2      |....... //and then service2 continues to build
service2      |.......
service2      |.......

如何最后显示来自service3的日志消息?即如何以最后一个顺序启动service3?

0 个答案:

没有答案