Docker命令没有返回正确的退出代码

时间:2018-02-22 06:05:54

标签: java docker

我正在使用docker命令行来执行java应用程序。我的java应用程序根据执行结果返回不同的退出。

例如,如果出现错误,我的java程序退出101 如果成功,我的java程序退出0

当我从eclipse运行这个应用程序时,我可以看到应用程序退出时使用上面指定的代码。

然而,当我从docker运行相同的应用程序时,我总是得到退出代码为127,以防我的程序错误。对于成功方案,docker命令正确地将退出代码显示为0(零)

我用谷歌搜索但找不到答案。任何人都可以告诉我为什么会发生这种情况并解决这个问题。

以下是详细信息: 我的码头命令:

dzdo docker run myapp:28 java -jar myapp.jar

我使用下面的命令来检查退出状态代码:

echo $?

谢谢,

1 个答案:

答案 0 :(得分:1)

docker的退出状态是命令的退出状态,或代码125或更高,以指示docker中出现错误,无法调用命令,或者由于信号而终止命令。

请参阅:https://docs.docker.com/engine/reference/run/#exit-status

退出代码127表示docker无法找到该命令。如果您确定可以找到您的命令,那么通过排除我们可以找到另一个选项:

dzdo命令正在更改退出代码。

不幸的是,我可以在dzdo上找到描述它使用的退出代码的文档。

尝试在没有dzdo的情况下运行docker(如果可能的话首先成为目标用户)以查看它是否提供了没有dzdo的正确退出代码 - 或者运行带有dzdo的脚本a)运行docker和b)打印退出代码