将Node.js应用程序(节点6,npm 5)部署到Beanstalk失败,原因是:
糟糕!堆栈错误:EACCES:权限被拒绝,mkdir'/ tmp / deployment / application / node_modules / heapdump / build'
尽管该错误不是特定于软件包的,但是任何node-gyp调用都会失败。
AWS控制台中的ERROR事件显示为:
[Instance:i-12345]命令在实例上失败。返回代码:1输出:(TRUNCATED)... / opt / elasticbeanstalk / containerfiles / ebnode.py“,行180,在npm_install中引发e子进程。CalledProcessError:命令'['/ opt / elasticbeanstalk / node-install / node- v6.10.0-linux-x64 / bin / npm','-production','install']'返回非零退出状态1.钩子/opt/elasticbeanstalk/hooks/appdeploy/pre/50npm.sh失败。有关更多详细信息,请使用控制台或EB CLI检查/var/log/eb-activity.log。
并eb-activity.log
包含上述npm错误。
该应用程序是通过上传不包含的.zip文件手动部署的node_modules
。也就是说,它不是通过eb
命令行工具部署的。
unsafe-perm=true
在.npmrc
为我解决了问题。