CF_STAGING_TIMEOUT 用于使用 Cloud Foundry 在 Bluemix 上部署 Shiny 应用程序

CF_STAGING_TIMEOUT for deploying Shiny app on Bluemix with Cloud Foundry

我有一个按预期在本地运行的 Shiny 应用程序,我正在努力使用 Cloud Foundry 将它部署到 Bluemix。我正在使用 this buildpack.

应用构建的默认暂存时间为 15 分钟,但这不足以安装 R 和我的应用所需的包。如果我尝试使用默认设置推送我的应用程序,我会收到有关 运行 超时的错误消息:

Error restarting application: sherlock-topics failed to stage within 15.000000 minutes

我更改了 manifest.yml 以增加暂存时间:

applications:  
- name: sherlock-topics
  memory: 728M
  instances: 1
  buildpack: git://github.com/beibeiyang/cf-buildpack-r.git
  env:
    CRAN_MIRROR: https://cran.rstudio.com
    CF_STAGING_TIMEOUT: 45
    CF_STARTUP_TIMEOUT: 9999

然后我还更改了推送前 CLI 的暂存时间:

cf set-env sherlock-topics CF_STAGING_TIMEOUT 45
cf push sherlock-topics

然后发生的是应用程序尝试部署。它在容器中安装 R 并安装包,但只用了大约 15 分钟(稍长一点)。当它在 15 分钟后到达第一个新任务(包)时,它会出错,但会出现一条不同的、遗憾的没有信息的错误消息。

Staging failed
Destroying container
Successfully destroyed container

FAILED
Error restarting application: StagingError

日志中没有任何内容,只有有关正在安装的库的信息,然后 Staging failed

关于为什么即使在我增加 CF_STAGING_TIMEOUT 之后它仍未继续超过 15 分钟标记的任何想法?

平台运营商控制暂存超时和应用程序启动超时的硬限制。 CF_STAGING_TIMEOUTCF_STARTUP_TIMEOUT 是 cf cli 配置选项,告诉 cli 等待暂存和应用程序启动的时间。

在此处查看文档以供参考:

https://docs.cloudfoundry.org/devguide/deploy-apps/large-app-deploy.html#consid_limits

作为最终用户,不能超过平台运营商设置的硬性限制。

我 运行 遇到了同样的问题。我还尝试部署具有大量依赖项的 shinyR 应用程序。

诀窍是将 num_threads 属性 添加到 r.yml 文件。这肯定会加快构建时间。

这是一个可能的样子:

packages:
 - packages: 
    - name: bupaR
    - name: edeaR
   num_threads: 8

有关详细信息,请参阅 https://docs.cloudfoundry.org/buildpacks/r/index.html