【发布时间】:2017-10-10 23:32:19
【问题描述】:
将启用管道工的 R 应用程序部署到 Bluemix/Cloud Foundry
我正在尝试使用 https://github.com/beibeiyang/cf-buildpack-r.git 构建包将启用管道工的 R 应用程序部署到 Bluemix / Cloud Foundry
应用程序很简单(app.R):
library(plumber)
api <- plumb("api.R")
PORT <- as.numeric( Sys.getenv('PORT') )
message (PORT)
api$run(port=PORT)
在我的Procfile 我有
web: Rscript app.R
在日志文件中,我看到安装(包括依赖项)成功完成并打印了我的消息。
问题是我无法访问已部署的应用程序。如果我使用
health-check-type: port
然后应用程序未通过运行状况检查并且根本无法访问。如果我使用
health-check-type: process
应用启动但尝试访问其 URL 会导致 502 bad gateway。
【问题讨论】:
-
我不懂 R,所以我帮不上什么忙,但是两个健康检查之间的区别在于,进程只会确保您的进程启动并运行,而端口会查看以确保它正在运行并正在侦听分配的端口。由于端口运行状况检查失败,因此应用程序可能未正确侦听传入连接。仔细检查您是否从 PORT env 变量中获取了一个值(它几乎总是 8080)。也许还可以在您的应用程序中添加一些日志记录,以便您更好地了解它在做什么。希望有帮助!
-
谢谢丹尼尔。我知道端口检查失败不仅仅是一个不便,而是表明一个根本问题。不幸的是,日志记录显示了预期的随机端口值,但没有更多信息。
标签: r ibm-cloud cloud-foundry plumber