reactjs - 无法在 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
有没有其他方法可能会失败并且日志会返回错误的错误?
解决方案
我正在为任何由此而来的未来人写这个答案。如果没有 NPM 错误信息。问题是内存耗尽,有两种方法可以在 Beanstalk 上专门解决此问题:
- 使用内存更大的机器(而不是说 t2.micro)
- (推荐)切换到
yarn
. Yarn 使用的内存比 npm 少得多。 - 找出其他方法来减少内存占用
这个问题让我很头疼,所以我希望这对以后遇到这个问题的人有所帮助。
推荐阅读
- android - CoroutineScope(job+Dispatchers.Main) 如何在主/UI 线程上运行?
- c# - 如果定义通过反射位于类内部,则无法检索枚举类型
- vbscript - 配置多个帐户时如何自动化 Outlook?
- opengl - OpenGL 使用着色器将 NV12 转换为 RGB24
- html - 如何将函数的输出作为对象读取
- javascript - 使用正则表达式删除 jquery 字符串中的单引号和最后一个逗号
- angular - 如何将列表组件中的数据传递给编辑组件以进行数据修改
- javascript - TypeError:在 props.onStartGame(selectedNumber) 中,'props.onStartGame' 未定义
- ssl - Tomcat 8 不强制 SSL 相互身份验证
- docker - 在 docker 中执行 ADD cmd 时创建的 tmp/setup 文件夹在哪里?