Docker compose等待没有睡眠命令

时间:2017-06-23 15:50:01

标签: docker docker-compose dockerfile docker-machine

我读过类似主题的很多内容; 例如: Docker Compose wait for container X before starting Y等。

所以,我正在尝试实施等待仅使用撰写和健康检查。

我只有一个docker-compose文件。有一个应用程序部分和测试此应用程序。

只有当app(jar,db等)准备就绪时才能执行测试(服务)。 在测试(服务)执行之后,我想通过$?

获取此执行的状态

所以我的撰写文件是下一个:

version: "2.1"
networks:
  myNetwork:
services:
  rabbitmq:
   ... 
    networks:
      - myNetwork
    healthcheck:
      test: ["CMD", "rabbitmqctl", "status"]
      interval: 100s
      timeout: 10s
      retries: 10
  app:
    ...
    depends_on:
      rabbitmq:
        condition: service_healthy
    networks:
      - myNetwork
    healthcheck:
      test: ["CMD", "wget", "http://localhost:8080/ping"]
      interval: 100s
      timeout: 10s
      retries: 10

  tests:
    build:
      context: .
      dockerfile: TestDocker
    depends_on:
      app:
        condition: service_healthy
    networks:
      - myNetwork

我试图跑:

docker-compose up -d app && docker-compose run tests;

docker-compose run tests

但是docker-compose run tests不等待条件:service_healthy; (app和rabbitmq容器已启动但未检查service_healthy);

这就是问题所在。

当我做这样的事情时:

  docker-compose up -d app && sleep 20 && docker-compose run tests;

有没有可能做睡眠或等待命令:docker - compose run tests

0 个答案:

没有答案