代工厂:ERR 在 1m0s 后超时:运行状况检查从未通过



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

您应该更改运行状况检查类型。如果应用程序未公开 Web 界面,则需要将healthcheck类型更改为 process 。有效值为 portprocesshttp

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

$ cf push YOUR-APP -u process

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

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

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


旧答案

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

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

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

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

cf push app_name -p target/app.jar -u none

最新更新