首页 > 解决方案 > 无法在 Elastic Beanstalk 上部署节点:命令“/bin/sh -c npm install”返回非零代码:1

问题描述

我正在使用 AWS 的弹性 beanstalk 来部署和托管使用 Docker 的反应应用程序。

即使我在本地机器上成功构建了 Docker 映像,部署也神秘地失败了。检查 EC2 实例上的日志(使用eb ssh)没有提供更多解释:

--------------------------------
/var/log/eb-commandprocessor.log
--------------------------------
Step 5/14 : COPY package.json /usr/src/app/package.json
---> Using cache
---> f06f2c9d6519
Step 6/14 : RUN npm install
---> Running in 9926fc11431f
The command '/bin/sh -c npm install' returned a non-zero code: 1
Failed to build Docker image aws_beanstalk/staging-app: 2c9d6519

我什至尝试npm install使用在构建容器的最后一层内运行命令

sudo docker commit 9926fc11431f test && docker run -it test bash
cd /path/to/wordir
npm install 

但是返回码其实是0

有没有其他方法可能会失败并且日志会返回错误的错误?

标签: reactjsdockeramazon-elastic-beanstalk

解决方案


我正在为任何由此而来的未来人写这个答案。如果没有 NPM 错误信息。问题是内存耗尽,有两种方法可以在 Beanstalk 上专门解决此问题:

  • 使用内存更大的机器(而不是说 t2.micro)
  • (推荐)切换到yarn. Yarn 使用的内存比 npm 少得多。
  • 找出其他方法来减少内存占用

这个问题让我很头疼,所以我希望这对以后遇到这个问题的人有所帮助。


推荐阅读