首页 > 解决方案 > 错误 R10(启动超时)-> Web 进程未能在启动后 90 秒内绑定到 $PORT

问题描述

我正在尝试将我的 Spring Boot 应用程序部署到 Heroku,但我不断收到:

2018-05-06T14:41:35.181889+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 90 seconds of launch
2018-05-06T14:41:35.182093+00:00 heroku[web.1]: Stopping process with SIGKILL
2018-05-06T14:41:35.482221+00:00 heroku[web.1]: Process exited with status 137
2018-05-06T14:41:35.496155+00:00 heroku[web.1]: State changed from starting to crashed

我已经看到一些答案告诉我这么地方

server.port=${PORT:8080}

在我的应用程序属性中,但它仍然无法正常工作。

我看不到我能做的任何其他事情,也没有进一步的输出可以提示我找到问题的根源。

有任何想法吗?

标签: spring-bootheroku

解决方案


我知道这是一个非常古老的问题,但是收到此错误消息的人可能会在这里...所以我想分享我对这个问题的解决方案:

我一直在我的 Spring Boot 应用程序中使用 Maven Heroku 插件

                    <groupId>com.heroku.sdk</groupId>
                    <artifactId>heroku-maven-plugin</artifactId>

发生在我身上的是意外我的 POM 文件被重新格式化,因此 <processTypes> <web>-Tag 中的内容收到了一些换行符。

Heroku Maven 插件根据这些内容创建一个 Procfile。但是 Procfile 不能处理命令中的换行符。

因此,在几乎发疯之后,我发现换行符导致命令损坏,这在我的情况下导致了上述错误。


推荐阅读