我在本地开发环境中部署应用时遇到了麻烦。我的cf push
始终失败并出现Exit status 223 (out of memory)
错误(无论应用程序如何)。
我确信我的IBM Cloud Org和我的本地环境都有足够的空间可以使用。
这是堆栈跟踪:
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

有没有人遇到过这个问题?有没有人对可能出现的问题有任何想法?
答案 0 :(得分:1)
以下是您可以尝试的内容:
这对我有用:
在我的NodeJS package.json中,我添加了:
"engines": {
"node": ">= 7.0.0",
"npm": ">= 4.2.0"
}
我认为问题出在IBM Cloud的默认npm版本上,而不是我在本地环境中使用的版本。一旦我在package.json中指定了版本,IBM Cloud就能够完成构建和部署。
如果人们更好地了解错误是什么以及此解决方案的工作原因,请分享。
答案 1 :(得分:0)
请检查应用程序的可用内存。 并检查您的应用程序是否产生任何内存泄漏。
最快的尝试是:
您可以增加应用的内存分配。
答案 2 :(得分:0)
错误是说暂存失败了,因为进程占用了太多内存。简而言之,正在运行的任何内容都超过了暂存容器的内存限制。
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)
你有三种方法可以解决这个问题。
Cloud Foundry会将暂存容器的内存限制设置为操作员定义的值或您为应用选择的内存限制大小,以较大者为准。我不能说操作员为您的平台定义了什么限制,但您可以通过简单地设置更大的内存限制来解决这个问题。只需尝试使用较大的值再次推送,直到成功为止。然后在推送成功后,您可以cf scale -m
并将内存限制降低到运行时所需的内容。
另一种选择是查看构建脚本或任何运行以暂存应用程序,并努力减少所需的内存。使其消耗更少的内存也应解决此问题。
最后,您可以在本地暂存您的应用。为此,您将在本地计算机上运行构建脚本,然后推送最终产品。您不能完全跳过暂存过程,但如果事情已经准备好运行,那么暂存通常会成为无操作。
希望有所帮助!