【问题标题】:Deploying plumber enabled R application to Bluemix / Cloud Foundry将启用管道工的 R 应用程序部署到 Bluemix/Cloud Foundry
【发布时间】: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


【解决方案1】:

看起来默认情况下,管道工绑定到错误的主机,以下工作:

api$run(host="0.0.0.0", port=PORT)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-09
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多