Heroku错误绑定到PORT上的Typesafe Activator

时间:2015-04-16 18:12:22

标签: java heroku playframework-2.0 typesafe-activator

我刚刚使用Play 2.3.8将旧的Play 2.1应用更新为新的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秒。在本地,它会立即与完全相同的命令绑定。

任何可能导致问题的想法?

1 个答案:

答案 0 :(得分:3)

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

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

你的Procfile应该是这样的:

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

当然,请将<app-name>替换为build.sbt中应用的名称。 JAVA_OPTS将自动被选中。