我正在使用docker命令行来执行java应用程序。我的java应用程序根据执行结果返回不同的退出。
例如,如果出现错误,我的java程序退出101 如果成功,我的java程序退出0
当我从eclipse运行这个应用程序时,我可以看到应用程序退出时使用上面指定的代码。
然而,当我从docker运行相同的应用程序时,我总是得到退出代码为127,以防我的程序错误。对于成功方案,docker命令正确地将退出代码显示为0(零)
我用谷歌搜索但找不到答案。任何人都可以告诉我为什么会发生这种情况并解决这个问题。以下是详细信息: 我的码头命令:
dzdo docker run myapp:28 java -jar myapp.jar
我使用下面的命令来检查退出状态代码:
echo $?
谢谢,
答案 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)打印退出代码