Docker容器在运行sbt/play应用程序时停止,没有任何错误
我遇到了一个问题,我的docker容器将在运行~天后退出,退出代码为Docker容器在运行sbt/play应用程序时停止,没有任何错误,docker,playframework,sbt,Docker,Playframework,Sbt,我遇到了一个问题,我的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
。容器的日志不包含指示发生错误代码的信息。此外,尝试重新启动容器会返回一个错误,即应用程序的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-9yourapp
)。有些东西可能是很多东西(可能是因为docker使用了太多的资源或其他东西,可能是内存不足,等等)
关于pid问题,您可以在build.sbt
中添加以下内容
javaOptions in Universal ++= Seq(
"-Dpidfile.path=/dev/null"
)
基本上,这应该指示Play不要创建正在运行的\u PID
文件。如果它不起作用,您可以尝试使用JAVA\u OPTS
env变量直接在Docker中传递该选项。错误代码137(128+9)表示它被某个东西杀死(比如kill-9 yourApp
)。有些东西可能是很多东西(可能是因为docker使用了太多的资源或其他东西,可能是内存不足,等等)
关于pid问题,您可以在build.sbt
中添加以下内容
javaOptions in Universal ++= Seq(
"-Dpidfile.path=/dev/null"
)
基本上,这应该指示Play不要创建
正在运行的\u PID
文件。如果它不起作用,您可以尝试使用JAVA\u OPTS
env变量直接在Docker中传递该选项。请提供Docker的输出,从发生故障的容器中检查\u应用
,并显示出现错误的重启命令和输出。容器关闭时,docker ps-a
的输出也可能有帮助。请提供docker的输出,从发生故障的容器检查_应用程序
,并显示出现错误的重启命令和输出。容器关闭时,docker ps-a
的输出也可能有帮助。