10

在我将我的应用程序部署到 Cloud Foundry 后,收到以下错误消息: ERR Timed out after 1m0s: health check never passed. 当然在我的本地机器上运行良好。

4

3 回答 3

25

您应该更改您的健康检查类型。如果应用程序没有公开 Web 界面,则需要将healthcheck类型更改为process. 有效值为portprocesshttp

要在创建或更新应用程序时配置运行状况检查,请使用 cf push 命令:

$ cf push YOUR-APP -u process

有关更多信息,请参阅运行状况检查文档: https ://docs.cloudfoundry.org/devguide/deploy-apps/healthchecks.html

于 2017-04-05T17:04:19.157 回答
7

根据评论中的讨论和我自己对您正在部署的实际应用程序的测试,看来这个特定的应用程序需要一段时间才能启动。可能与单个 Java 服务超时有关(因为您没有将任何 CF 服务绑定到应用程序)。

无论如何,虽然我不确定实际问题是什么(可能是 PWS 本身的问题),但可以通过在-t推送时指定选项或将timeout: <int>属性添加到清单中来解决这个问题(请参阅manifest文档.


旧答案

需要更多细节才能确定,但​​我想正在发生两件事之一:

  • 您没有使用正确的端口。PORTCloud Foundry 使用(或,pre-Diego,VCAP_APP_PORT)环境变量公开它期望应用程序部署的端口。这默认为8080,因此如果您的应用程序没有监听8080(或绑定到127.0.0.1而不是0.0.0.0),则运行状况检查将失败。
  • 您的应用程序不公开任何 API 端点,并且应该使用--no-routeCF 上的选项进行部署,并且(从 Diego 开始)需要cf set-health-check [app-name]针对它执行。仅当您的应用程序确实不需要运行状况检查时才应执行此操作。

一些构建包可以自动为您处理第一个。您使用的是哪个构建包?或者,或者,您使用的是哪种语言?

于 2016-02-07T12:14:24.000 回答
1

您可以使用以下命令禁用运行状况(短期解决方案)

cf push app_name -p target/app.jar -u none
于 2019-04-12T22:32:42.033 回答