推送到Cloud Foundry时出现内存不足错误

时间:2017-06-23 13:36:04

标签: python cloudfoundry

我尝试将我的应用推送到Cloud Foundry,但收到此错误:

Staging failed: Exited with status 223 (out of memory)

在解析requirements.txt时会发生这种情况。

这是一些堆栈跟踪:

/tmp/buildpacks/555e1c5491df8298a7d2ee82e346f99b/bin/steps/pip-install: line 25:   122 Killed                  /app/.cloudfoundry/python/bin/pip install -r requirements.txt --exists-action=w --src=/app/.cloudfoundry/src
   123 Done                    | cleanup
   124 Done                    | indent
Failed to compile droplet
Exit status 223
Staging failed: Exited with status 223 (out of memory)
Destroying container
Successfully destroyed container

到目前为止我尝试将环境变量unmask设置为0022,因为可以通过这种方式解决与java buildpack类似的错误。

非常感谢任何帮助,如果您需要进一步的信息,请告诉我。

3 个答案:

答案 0 :(得分:0)

您的申请未能上台。看起来该平台正在查杀pip,因为它超出了分配给登台容器的内存限制。分段容器的内存限制为1G或您为应用程序分配的内存限制,无论哪个更大。

鉴于此,我建议解决此问题的方法是将应用的内存限制增加到1G以上,也可以尝试2G,然后查看pip是否能够完成。登台完成后,如果您的应用程序不需要那么多内存,您可以运行cf scale -m并减少应用程序的内存使用量。

其他可能的解决方案:

  1. 在本地运行pip并在您的依赖项中"vendor"运行。然后,您可以使用可能会降低pip内存消耗的应用程序来推送依赖项。

  2. 调查pip占用如此多内存并尝试减少内存使用量的原因。

  3. 希望有所帮助!

答案 1 :(得分:0)

这是因为你没有足够的内存来将应用推送到云代工厂。您可以通过删除未使用的应用程序来释放组织中的内存。

答案 2 :(得分:0)

我有一个类似的问题。我的虚拟环境(使用virtualenv程序包创建)属于要部署到PCF的文件夹。将其添加到.cfignore会忽略虚拟环境文件夹。