推送到 IBM Cloud 时退出状态 223(内存不足)

Exit status 223 (out of memory) when pushing to IBM Cloud

我 运行 在从我的本地开发环境部署应用程序时遇到了麻烦。我的 cf push 总是失败并出现 Exit status 223 (out of memory) 错误(与应用程序无关)。

我确定我的 IBM Cloud 组织和我的本地环境都有足够的 space 来使用。

这是堆栈跟踪:

REQUEST: [2018-02-14T09:02:04-05:00]
GET /v2/apps/7426064e-0d6c-469e-8d6d-01e47728be01 HTTP/1.1
Host: api.ng.bluemix.net
Accept: application/json
Authorization: [PRIVATE DATA HIDDEN]
Connection: close
Content-Type: application/json
User-Agent: go-cli 6.32.0+0191c33d9.2017-09-26 / darwin


  10% building modules 8/17 modules 9 active ...node_modules/fbjs/lib/containsNode.js   
 89% additionsets processing                                      Hash: 9d08b2614d7a87cb99ad              
       Version: webpack 2.7.0
       js/bundle.9d08b2614d7a87cb99ad.js     297 kB       0  [emitted]  [big]  main
       js/bundle.9d08b2614d7a87cb99ad.js.map     466 kB       0  [emitted]         main
       index.html  304 bytes          [emitted]
       [0] ./~/react/index.js 190 bytes {0} [built]
       [4] ./client/app/App.jsx 858 bytes {0} [built]
       [5] ./~/react-dom/index.js 1.36 kB {0} [built]
       [6] ./client/default.scss 1.03 kB {0} [built]
       [8] ./~/css-loader!./~/sass-loader/lib/loader.js!./client/default.scss 193 kB {0} [built]
       [9] ./~/css-loader/lib/css-base.js 2.26 kB {0} [built]
       [12] ./~/fbjs/lib/containsNode.js 923 bytes {0} [built]
       Time: 73789ms
       Asset       Size  Chunks                    Chunk Names
       [7] ./client/index.jsx 222 bytes {0} [built]
       [10] ./~/fbjs/lib/EventListener.js 2.25 kB {0} [built]
       [11] ./~/fbjs/lib/ExecutionEnvironment.js 935 bytes {0} [built]
       [13] ./~/fbjs/lib/focusNode.js 578 bytes {0} [built]
       [14] ./~/fbjs/lib/getActiveElement.js 912 bytes {0} [built]
       [18] ./~/react-dom/cjs/react-dom.production.min.js 92.7 kB {0} [built]
       [19] ./~/react/cjs/react.production.min.js 5.41 kB {0} [built]
       [20] ./~/style-loader/addStyles.js 6.91 kB {0} [built]
       + 6 hidden modules
       Child html-webpack-plugin for "index.html":
       [0] ./~/lodash/lodash.js 540 kB {0} [built]
       [1] ./~/html-webpack-plugin/lib/loader.js!./client/index.html 590 bytes {0} [built]
       [2] (webpack)/buildin/global.js 509 bytes {0} [built]
       [3] (webpack)/buildin/module.js 517 bytes {0} [built]
-----> Build failed

Failed to compile droplet: Failed to compile droplet: exit status 137
Exit status 223 (out of memory)
Staging failed: STG: Exited with status 223 (out of memory)
Stopping instance 0ee88ef2-8cd4-4096-9c3c-dee1870cf758
Destroying container
Successfully destroyed container

有人 运行 解决过这个问题吗?有没有人知道什么地方可能出了问题?

请检查您的应用程序的可用内存。 并检查您的应用程序是否产生任何内存泄漏。

最快的尝试是:

您可以增加应用的内存分配。

  • 登录云的仪表板。
  • Select 您的应用并增加 MEMORY QUOTA。
  • 这将重新启动应用程序。
  • 再试一次。

错误是说暂存失败,因为进程用完了太多内存。简而言之,运行ning 超出了暂存容器的内存限制。

Failed to compile droplet: Failed to compile droplet: exit status 137
Exit status 223 (out of memory)
Staging failed: STG: Exited with status 223 (out of memory)

您有三种解决方法。

  1. Cloud Foundry 会将暂存容器的内存限制设置为操作员定义的值或您为应用程序选择的内存限制大小,以较大者为准。我不能说操作员为您的平台定义的限制是什么,但您可以通过简单地设置更大的内存限制来解决这个问题。只需尝试用更大的值再次推送,直到成功。然后在推送成功后,您可以 cf scale -m 将内存限制降低到 运行 时间所需的内存限制。

  2. 另一种选择是查看您的构建脚本或任何 运行s 以暂存您的应用程序,并努力减少它所需的内存。让它消耗更少的内存也应该可以解决这个问题。

  3. 最后,您可以在本地暂存您的应用程序。为此,您将 运行 在本地计算机上构建脚本,然后推送最终产品。您不能完全跳过暂存过程,但是如果事情已经准备就绪 运行 那么暂存通常会变成 no-op.

希望对您有所帮助!

以下是您可以尝试的方法:

  • 正在重新启动应用程序
  • Re-installing npm 包(npm 安装)
  • 正在更新节点,npm 版本
  • 在 IBM Cloud
  • 上增加应用程序 space
  • 减少应用程序使用的整体内存
  • 寻找可能的内存泄漏
  • 包(webpack 等)可能存在的问题

这是对我有用的方法

在我的 NodeJS package.json 中,我添加了:

"engines": {
  "node": ">= 7.0.0",
  "npm": ">= 4.2.0"
}

我认为问题出在 IBM Cloud 的默认 npm 版本,而不是我在本地环境中使用的版本。在 package.json 中指定版本后,IBM Cloud 就能够完成构建和部署。

如果人们对错误是什么以及此解决方案有效的原因有更好的理解,请分享。