Docker容器在运行sbt/play应用程序时停止,没有任何错误

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%的可用内存,但这是唯一一个退出的特

我遇到了一个问题,我的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-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
的输出也可能有帮助。