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

时间:2016-08-19 01:19:45

标签: 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%的可用内存,但它只有那个特定的容器才能退出。

寻找有关下一步的建议。

1 个答案:

答案 0 :(得分:2)

错误代码137(128 + 9)表示它被某些东西杀死(如kill -9 yourApp)。这可能是很多事情(也许它被杀死了,因为它使用了太多资源的码头工人或其他东西,也许是内存不足等等)

关于pid问题,您可以添加到build.sbt这个

javaOptions in Universal ++= Seq(
  "-Dpidfile.path=/dev/null"
)

基本上这应该指示Play不创建RUNNING_PID文件。如果它不起作用,您可以尝试使用JAVA_OPTS env变量直接在Docker中传递该选项。