我有一个应用程序在docker容器中运行两个服务。我遇到了JVM在完成第一个进程(即从一个播放项目构建一个jar)后意外退出的情况,并带有以下消息:
[info] Your package is ready in /app/.../project-0.1.0.zip
[success]
[Thread-2] [CoordinatedShutdown(akka://sbt-web)] Starting coordinated shutdown from JVM shutdown hook
Archive: /app/.../target/universal/project-0.1.0.zip
第二个进程(提取jar并运行应用程序)以Archive: /app/.../target/universal/project-0.1.0.zip
开头,但无法提取jar。 docker容器不会退出。
令人惊讶的是,重建和运行容器后,在多次运行中都看不到此问题。另外,我最近将我的sbt版本从0.13.11
升级到1.1.1
。从那时起,我开始面对CoordinatedShutdown
这个问题。因此,我非常确定这不是码头问题。
我还尝试添加akka.coordinated-shutdown.exit-jvm = off
和
akka.coordinated-shutdown.run-by-jvm-shutdown-hook = off
到我的 application.conf 但CoordinatedShutdown
仍然出现。任何解决方案?
答案 0 :(得分:1)
我发现问题是播放应用程序无法在其容器中启动,因为尚未删除RUNNING_PID文件。最后,设法通过阻止Play使用-Dpidfile.path=/dev/null
创建PID来解决此问题。
参考文献:https://www.playframework.com/documentation/2.6.x/Deploying#play-pid-configuration