来自后台命令的Docker返回代码
当在Docker容器中执行脚本并在其中运行后台任务时,我没有得到预期的返回代码 此示例docker文件突出显示了问题:来自后台命令的Docker返回代码,docker,return-code,Docker,Return Code,当在Docker容器中执行脚本并在其中运行后台任务时,我没有得到预期的返回代码 此示例docker文件突出显示了问题: FROM ubuntu:latest MAINTAINER Jakob H. Thomsen (jakob@gedefar.dk) RUN echo "#!/bin/bash\nset -e\n\nls / &\nexit 1" > /start_script.sh RUN chmod +x /start_script.sh 它在容器内创建以下文件/star
FROM ubuntu:latest
MAINTAINER Jakob H. Thomsen (jakob@gedefar.dk)
RUN echo "#!/bin/bash\nset -e\n\nls / &\nexit 1" > /start_script.sh
RUN chmod +x /start_script.sh
它在容器内创建以下文件/start\u script.sh
:
#!/bin/bash
set -e
ls / &
exit 1
因此运行docker build-t jakob/test.
和docker run jakob/test cat/start_script.sh
您会期望返回代码为1,因为退出1。它不是,它是0,这是由于ls/&
(如果删除该命令,则会得到预期的返回代码1)
所以我的问题是为什么ls/&
覆盖exit 1
命令的返回代码?我试着让退出1
在后台运行,但它没有改变返回代码
当我使用安装程序运行Ruby规范时,我确实依赖于最后一个命令的返回码,那么我可以做些什么让Docker返回最后一个命令的返回码吗
谢谢,我希望您能提供帮助,因为我花了很长时间才找到这些“错误”返回代码的确切问题。事实证明,最新版本的Docker解决了这个问题: