【发布时间】:2018-07-10 17:19:02
【问题描述】:
是否可以告诉 docker compose 在不使用 --abort-on-container-exit 的情况下完成父服务测试后终止 depends_on 数组上指定的服务?
我正在尝试构建一个运行多个应用程序测试的 docker 文件,例如:
services:
test-spa:
build:
context: ./spa
dockerfile: Dockerfile.test
command: ["yarn", "run", "test", "--watch", "false"]
lint:
build:
context: ./spa
dockerfile: Dockerfile.test
command: ["yarn", "run", "lint"]
build:
build:
context: ./spa
dockerfile: Dockerfile.test
command: ["yarn", "run", "build", "--prod"]
test-backend:
build:
context: ./backend
dockerfile: Dockerfile.dev
entrypoint: [scripts/entrypoint.sh]
command: bundle exec rails test
depends_on:
- db
db:
image: postgres
问题是test-backend 将db 服务作为依赖项启动,运行它的测试,退出并且db 永远不会完成。
使用--abort-on-container-exit 不是一个选项,因为spa 相关服务可能会在test-backend 结束之前退出。
【问题讨论】:
-
我相信您正在寻找的是一个 shell 脚本。这将是微不足道的。这不是 docker-compose 的特性,如果你转换到 swarm 模式,你会发现不再支持depends_on。无论如何,它从来没有真正做到人们所期望的。在此处查看所有注释:docs.docker.com/compose/compose-file/#depends_on
-
是的!我们有一些 shell 脚本允许我们在 CI 上运行测试套件。只是想知道当另一个服务完成时是否有一种本地方法可以杀死一个服务。
标签: docker docker-compose dockerfile