【问题标题】:Docker command doesn't return correct exit codeDocker 命令没有返回正确的退出代码
【发布时间】:2018-02-22 06:05:54
【问题描述】:

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

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

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

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

我用谷歌搜索但找不到答案。谁能告诉我为什么会发生这种情况以及对此的任何解决方法。

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

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

我使用以下命令检查退出状态代码:

echo $?

谢谢,

【问题讨论】:

  • 如果你在没有dzdo的情况下运行,退出代码会改变吗?

标签: java docker


【解决方案1】:

docker 的退出状态是命令的退出状态,或者代码 125 或更高,表示 docker 出现问题,无法调用命令,或命令因信号而终止。

见:https://docs.docker.com/engine/reference/run/#exit-status

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

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

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

尝试在没有 dzdo 的情况下运行 docker(如果可能,首先成为目标用户),看看它是否在没有 dzdo 的情况下给出正确的退出代码 - 或者使用 dzdo 运行一个脚本,a) 运行 docker 并且 b) 打印退出代码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多