在 docker 中运行 python 测试,并在主机上获取退出代码



我有这个 docker 撰写文件

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'"

我有一个以下生成文件

test:
cp config/config-$(env).cfg config/config.cfg
docker-compose -f environment/test.yml up --build 

我在 CI 中的构建步骤之一中运行此Makefile

问题是,测试运行和失败,python3过程得到exit code 1。但是,一旦python3过程完成,容器就会关闭。但是我的主机显示status code 0.这导致即使测试失败,我的构建也会通过。

如何将此python3退出代码转发到我的主进程,以便它知道测试失败。

谢谢

PS:我们有旧的docker compos版本,没有附带--exit-code-from标志

在后台运行容器:

docker run -dit abc-python-test somecommand

然后,您可以使用

docker wait abc-python-test

如果确定容器在运行后始终退出,则无论测试通过或失败,这都可以获取容器的返回代码。

细节参考官方指南。

最新更新