gpt4 book ai didi

python - 在 docker 内部运行 python 测试并在主机外部获取退出代码

转载 作者:行者123 更新时间:2023-12-02 18:29:19 30 4
gpt4 key购买 nike

我有这个 docker compose 文件

version: "2"
services:
abc_python_test:
build: "python"
container_name: "abc-python-test"
volumes:
- "../:/abc/"
working_dir: "/abc"
command: "sh -c 'python3 -m unittest tests/calculator.py'"

我有以下 Makefile
test:
cp config/config-$(env).cfg config/config.cfg
docker-compose -f environment/test.yml up --build

我运行这个 Makefile在我们的 CI 中的构建步骤之一。

问题是,测试运行失败, python3进程获取 exit code 1 .然而,一旦 python3过程完成容器下降。但是我的主机显示 status code 0 .即使测试失败,这也会导致我的构建通过。

我怎样才能转发这个 python3将代码退出到我的主进程,以便它知道测试失败了。

谢谢

PS:我们有旧的 docker compose 版本,它不附带 --exit-code-from旗帜

最佳答案

在后台运行容器:

docker run -dit abc-python-test somecommand
然后你可以使用
docker wait abc-python-test
如果您确定容器在运行后始终退出,无论测试通过还是失败,这都可以获得容器的返回代码。
详情引用 offical guide .

关于python - 在 docker 内部运行 python 测试并在主机外部获取退出代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51997932/

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