【问题标题】:How to make docker-compose stop after X containers have stopped?X容器停止后如何使docker-compose停止?
【发布时间】:2019-07-28 13:20:59
【问题描述】:

我有一个 docker-compose.yml 文件,它可以启动 11 个容器:

  • 1 个容器运行我要测试的 Web 应用程序
  • 10 个几乎相同的容器运行一系列针对第一个容器的端到端测试

只有在所有 10 个测试容器都运行完所有测试之后,我希望 docker-compose 停止所有 11 个容器。

docker-compose up 是否支持此类功能,还是我需要在此基础上构建自己的功能?

【问题讨论】:

  • afaik,docker-compose(它是包装器)不支持这个。但是编写一个小脚本来检查容器 docker-compose in-network 的可用性并不难。
  • 您可以通过运行状况检查来做到这一点。
  • @dov-rine 谢谢。 healthcheck 很有趣,但我如何让它检查每个容器中的其他 9 个容器?
  • @urig:你不知道。如果您需要容器相互检查,那么您需要使用 Butuzov 的答案。 Docker-compose 没有进入容器;它协调它们的构建、操作和拆除。
  • @urig:您可以通过创建一个脚本来使用组合,该脚本根据每个容器的测试进度报告其健康状况,并让 docker-compose 使用该脚本进行健康检查。

标签: docker docker-compose end-to-end


【解决方案1】:

如果您有 11 个容器(假设它们被称为 a_1a_2、...、a_11)并且您需要等待其中的 10 个(假设是前 10 个)然后 您可以使用命令docker wait 执行以下操作:

docker-compose up -d
docker wait a_1 a_2 ... a_10
docker-compose down

【讨论】:

    猜你喜欢
    • 2016-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    相关资源
    最近更新 更多