【问题标题】:Typesafe Activator on Heroku Error Binding to PORTHeroku 错误绑定到 PORT 上的类型安全激活器
【发布时间】:2015-04-16 18:12:22
【问题描述】:

我刚刚将我们的旧 Play 2.1 应用更新为带有 Play 2.3.8 的新 Typesafe Activator。我注意到该应用程序现在似乎在项目的根目录中有一个激活器启动器。我正在尝试在 Heroku 上部署应用程序并收到此错误:

Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch

我的 Procfile 看起来像:

web: ./activator "-Dhttp.port=${PORT} ${JAVA_OPTS} -Dconfig.file=${CONFIG_RESOURCE}" run

该应用程序非常小,我几乎可以肯定应该有任何理由启动并绑定到端口需要超过 60 秒的时间。在本地,它会立即与完全相同的命令绑定。

有什么可能导致问题的想法吗?

【问题讨论】:

    标签: java heroku playframework-2.0 typesafe-activator


    【解决方案1】:

    我建议不要使用activator 在生产环境中运行您的应用。

    Heroku 对您的应用程序运行 sbt stage 命令,该命令会创建一个可用于启动您的应用程序的 target/universal/stage/bin/<app-name> 脚本。这是在生产中运行的一种更好的方式,因为它消除了对 activator 和/或 sbt 的任何开销或潜在的怪癖。

    您的Procfile 应该如下所示:

    web: target/universal/stage/bin/<app-name> -Dhttp.port=${PORT} -Dconfig.file=${CONFIG_RESOURCE}
    

    当然,将&lt;app-name&gt; 替换为build.sbt 中的应用名称。 JAVA_OPTS 将被自动提取。

    【讨论】:

    • 谢谢!似乎 Play 框架的整个结构每隔几个月就会更改一次,并且在本地运行时,我没有像以前那样在 target/ 中看到二进制文件。不知道 Heroku 运行了 sbt stage 命令:)
    猜你喜欢
    • 2015-04-20
    • 1970-01-01
    • 2014-08-21
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    相关资源
    最近更新 更多