我有这个 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
如果确定容器在运行后始终退出,则无论测试通过或失败,这都可以获取容器的返回代码。
细节参考官方指南。