我有一个Nest.js(Node.js)应用程序,我想将其部署在ElasticBeanstalk(Node 16版本,AL 2 5.5.0)上。我的部署一直失败,我在eb-engine.log
中发现了错误。
...
2022/03/23 15:11:48.570759 [INFO] Executing instruction: StageApplication
2022/03/23 15:11:48.570846 [INFO] extracting /opt/elasticbeanstalk/deployment/app_source_bundle to /var/app/staging/
2022/03/23 15:11:48.570860 [INFO] Running command /bin/sh -c /usr/bin/unzip -q -o /opt/elasticbeanstalk/deployment/app_source_bundle -d /var/app/staging/
2022/03/23 15:11:49.274806 [INFO] finished extracting /opt/elasticbeanstalk/deployment/app_source_bundle to /var/app/staging/ successfully
2022/03/23 15:11:49.289272 [INFO] Executing instruction: RunAppDeployPreBuildHooks
2022/03/23 15:11:49.289292 [INFO] Executing platform hooks in .platform/hooks/prebuild/
2022/03/23 15:11:49.289306 [INFO] The dir .platform/hooks/prebuild/ does not exist
2022/03/23 15:11:49.289311 [INFO] Executing instruction: Install customer specified node.js version
2022/03/23 15:11:49.289314 [INFO] installing specified nodejs version...
2022/03/23 15:11:49.289467 [INFO] there is no nodejs version specified in package.json, skip installing specified version of nodejs
2022/03/23 15:11:49.289476 [INFO] Executing instruction: Use NPM to install dependencies
2022/03/23 15:11:49.289484 [INFO] use npm to install dependencies
2022/03/23 15:11:49.289505 [INFO] Running command /bin/sh -c npm config set jobs 1
2022/03/23 15:11:49.574486 [INFO] Running command /bin/sh -c npm --production install
2022/03/23 15:12:06.913580 [ERROR] An error occurred during execution of command [app-deploy] - [Use NPM to install dependencies]. Stop running the command. Error: Command /bin/sh -c npm --production install failed with error signal: killed
...
我认为这个错误是在生产模式下安装npm包时发生的,但我真的很想知道为什么会发生这种情况。我在本地计算机上执行了npm --production install
,安装成功,使用的是完全相同版本的node & npm。(Node 16.14.0,npm 8.3.1 -AL 2 5.5.0最新版本)。
我想知道为什么会发生这种情况,以及如何调试更多的细节(为什么在弹性beanstalk环境中npm安装失败)。
2条答案
按热度按时间new9mtju1#
我也遇到过同样的问题,我能找到的唯一解决方法就是增加运行应用程序的示例的大小,为了让它工作,我不得不使用
t2.medium
。您还可以尝试增加运行应用的EC2示例的交换,但根据我的经验,这会使部署过程花费太长时间,有时甚至会失败。(如果您想尝试这种方法,请参阅this answer)
bjp0bcyl2#
已接受的答案未解决潜在问题:
第一个月
据我所知,大多数时候这意味着内存泄漏/超时问题。而且这似乎是常见的npm v7+版本。
解决方案
1.使用预构建挂钩创建node_modules:
mkdir node_modules
这样做可以防止AWS安装依赖项(因为文件夹node_modules已经存在)。
1.使用预部署挂钩安装依赖项:
npm install --omit=dev
Source(请参见
pmoleri
答案)AWS Hooks(正式文件)