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

我遇到了一个问题,我的docker集装箱将在运行一天之后以退出码137退出。 容器的日志中不包含指示已发生错误代码的信息。 此外,尝试重新启动容器将返回PID已经存在的应用程序的错误。

容器是使用sbt docker插件构build的, sbt docker:publishLocal ,然后使用docker run --name=the_app --net=the_app_nw -d the_app:1.0-SNAPSHOT

我还运行了3个其他的docker集装箱,它们一起使用了90%的可用内存,但是它唯一的一个特定的集装箱出口。

寻找任何build议,看看下一步。

错误代码137(128 + 9)意味着它被杀死了(像kill -9 yourApp )。 有些东西可能是很多东西(也许是因为docker工人使用了太多的资源而死亡,也可能是内存不足等)

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

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

基本上这应该指示播放不创build一个RUNNING_PID文件。 如果它不起作用,可以尝试使用JAVA_OPTS envvariables直接在Docker中传递该选项。