Heroku 上的类型安全激活器错误绑定到 PORT
Typesafe Activator on Heroku Error Binding to PORT
我刚刚将旧的 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 秒是有原因的。在本地,它会立即与完全相同的命令绑定。
任何可能导致问题的想法?
我建议 不要 使用 activator
来 运行 您的生产应用。
Heroku 运行s 针对您的应用程序的 sbt stage
命令,它创建一个 target/universal/stage/bin/<app-name>
脚本,可用于启动您的应用程序。这是在生产中 运行ning 的更好方法,因为它消除了对激活器 and/or sbt.
的任何开销或潜在的怪癖。
您的 Procfile
应该看起来像这样:
web: target/universal/stage/bin/<app-name> -Dhttp.port=${PORT} -Dconfig.file=${CONFIG_RESOURCE}
当然,把<app-name>
替换成你在build.sbt
中的应用名称。 JAVA_OPTS
将被自动拾取。
我刚刚将旧的 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 秒是有原因的。在本地,它会立即与完全相同的命令绑定。
任何可能导致问题的想法?
我建议 不要 使用 activator
来 运行 您的生产应用。
Heroku 运行s 针对您的应用程序的 sbt stage
命令,它创建一个 target/universal/stage/bin/<app-name>
脚本,可用于启动您的应用程序。这是在生产中 运行ning 的更好方法,因为它消除了对激活器 and/or sbt.
您的 Procfile
应该看起来像这样:
web: target/universal/stage/bin/<app-name> -Dhttp.port=${PORT} -Dconfig.file=${CONFIG_RESOURCE}
当然,把<app-name>
替换成你在build.sbt
中的应用名称。 JAVA_OPTS
将被自动拾取。