在父服务测试完成后不使用$query = new \WP_Query([
...
's' => $term,
'meta_query' => array(
array(
'key' => 'foo_listing_syndication',
'value' => $term,
'compare' => '=',
),
),
]);
的情况下,是否可以告诉docker compose杀死depends_on
数组上指定的服务?
我正在尝试构建一个可以从多个应用程序运行测试的docker文件,例如:
--abort-on-container-exit
问题是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
结束之前退出。
答案 0 :(得分:1)
我不认为这是docker-compose的内置功能。但是您可以轻松编写解决方案的脚本,例如:
docker-compose up -d db
docker-compose up test-backend
docker-compose down db
在docker-compose之外,还有docker container wait
命令,可让您挂起直到容器退出。您可以使用docker container ls
查找容器名称,并在标签或其他唯一值上进行过滤,或者可以依赖于compose($project_$service_$replica
)中可预测的容器名称。 docker container wait
命令可让您以分离状态启动整个项目,然后等待一个容器退出后再继续停止它,例如:
docker-compose up -d
docker container wait $(basename $(pwd))_test-backend_1
docker-compose down db