gpt4 book ai didi

postgresql - 测试后 docker-compose 退出 depends_on 服务

转载 作者:行者123 更新时间:2023-11-29 12:09:25 25 4
gpt4 key购买 nike

如何让服务容器在依赖容器完成后退出?

我有一个在 app_unittestbot 容器中运行的测试套件,该容器依赖于在单独容器中运行的 postgresql 数据库服务器 (postgres:9.5-alpine)。一旦测试套件退出,我想检查测试套件的返回码并停止数据库容器。使用下面的 docker-compose.yml,db 服务容器永远不会停止。

docker-compose.yml

version: '2.1'
services:
app_postgresql95:
build: ./postgresql95/
ports:
- 54321:5432

app_unittestbot:
command: /root/wait-for-it.sh app_postgresql95:5432 --timeout=60 -- nose2 tests
build: ./unittestbot/
links:
- app_postgresql95
volumes:
- /app/src:/src
depends_on:
- 'app_postgresql95'

最佳答案

您可以运行 docker-compose up --abort-on-container-exit 以在其中任何一个容器退出时停止所有容器。这可能会解决您的用例。

对于一些更有弹性的东西,我可能会将它分成两个组合文件,这样 postgresql 上的中止就不会意外地注册为成功的测试。然后你只需按你需要的顺序运行这些文件:

docker-compose -f docker-compose.yml      up -d
docker-compose -f docker-compose.test.yml up
docker-compose -f docker-compose.yml down

关于postgresql - 测试后 docker-compose 退出 depends_on 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44462316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com