我遇到了一个问题,即在运行约一天后,我的Docker容器将以退出代码137
退出。容器的日志不包含任何指示已发生错误代码的信息。此外,尝试重新启动容器会返回一个错误,指出该应用程序的PID已经存在。
该容器使用sbt docker插件sbt docker:publishLocal
构建,然后使用docker run --name=the_app --net=the_app_nw -d the_app:1.0-SNAPSHOT
。
我还正在运行其他3个docker容器,它们全部一起使用了90%的可用内存,但它仅是退出的那个特定容器。
寻找有关下一个地方的建议。
最佳答案
错误代码137(128 + 9)表示它已被某种东西杀死(如kill -9 yourApp
)。那东西可能是很多东西(也许是因为被docker或其他东西占用了过多的资源而被杀死,也许它已耗尽内存,等等)
关于pid问题,您可以将此添加到build.sbt
javaOptions in Universal ++= Seq(
"-Dpidfile.path=/dev/null"
)
基本上,这应该指示Play不要创建
RUNNING_PID
文件。如果不起作用,您可以尝试使用JAVA_OPTS
env变量在Docker中直接传递该选项。
关于docker - Docker容器在运行sbt/play应用程序时停止运行而没有任何错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39029737/