所以我有三个容器,用于测试目的:1个dev-server 2 selenium-headless 3个单元。
它们全部并行运行并且运行正常。唯一的问题是我的1个dev服务器容器在其他两个退出并完成运行测试时不会退出/停止。如果其中一个容器以代码1退出,我还希望它以代码1退出。
在退出其他两个容器后,我该怎么办并添加它才能退出?
我的docker-compose文件看起来像这样。 :
version: "3"
services:
dev-server:
build: .
tty: true
hostname: yeti-ui
container_name: yeti-ui
ports:
- 127.0.0.01:8080:8080
- 35729:35729
environment:
- "SKIP_DOCS=0"
- "SCHEME=http"
- "NODE_ENV=stage"
entrypoint: npm
command: run dev-server
headless-chrome:
build:
context: .
dockerfile: ./Dockerfile-headless-chrome
cap_add:
- SYS_ADMIN
network_mode: "host"
unit-test:
build: .
entrypoint: npm
command: test
我无法使用--abort-on-container-exit
或--exit-on-code
因为我需要在开发服务器停止之前完成其他两项工作。
这是我在makefile中运行的方式:
docker-selenium-headless
docker ps -qa | xargs docker rm -f
docker-compose up --build