1

我尝试使用命令行工具在Elastic Beanstalk上安装一个简单的Node.js应用程序。由于目录权限,Amazon Elastic Beanstalk上的Node.js部署失败

在我的git仓库我运行命令

$ eb deploy 

部署我的git仓库中的内容。它部署好但是应用程序的健康状态是红色的。

如果我看弹性魔豆网站上的日志,它指向我在日志中出现以下错误:

> [email protected] install /tmp/deployment/application/node_modules/nodemon/node_modules/chokidar/node_modules/fsevents 
> node-pre-gyp install --fallback-to-build 

gyp ERR! configure error 
gyp ERR! stack Error: EACCES: permission denied, mkdir '/tmp/deployment/application/node_modules/nodemon/node_modules/chokidar/node_modules/fsevents/build' 
gyp ERR! stack at Error (native) 
gyp ERR! System Linux 4.1.17-22.30.amzn1.x86_64 
gyp ERR! command "/opt/elasticbeanstalk/node-install/node-v4.3.0-linux-x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v4.3.0-linux-x64/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/tmp/deployment/application/node_modules/nodemon/node_modules/chokidar/node_modules/fsevents/lib/binding/Release/node-v46-linux-x64/fse.node" "--module_name=fse" "--module_path=/tmp/deployment/application/node_modules/nodemon/node_modules/chokidar/node_modules/fsevents/lib/binding/Release/node-v46-linux-x64" 
gyp ERR! cwd /tmp/deployment/application/node_modules/nodemon/node_modules/chokidar/node_modules/fsevents 
gyp ERR! node -v v4.3.0 
gyp ERR! node-gyp -v v3.0.3 
gyp ERR! not ok 

我试着像各种事情:

  1. 创建目录自己(目录由root拥有)。
  2. 删除/ tmp中的所有内容,以便希望下次修复它自己。
  3. 删除我的node_modules目录。

这些选项都不起作用,我无法找到解决方法或发生这种情况的原因。我可以在本地运行node.js应用程序,并将其部署到Azure和Heroku,而不会有任何问题。

+0

我有同样的问题,你有什么发现吗?提出的答案不是我的问题 – ParoX

+0

我已经想通了,一个模块试图在package.json的'preinstall'部分中使用'npm install'安装另一个模块。希望这也是你的问题。 – ParoX

+0

我通过不检查git仓库中的'node_modules'解决了我的问题。 'npm install'自动创建它们。 –

回答

4

花了整整一天的时间调试这个错误。事实证明,您需要在.ebignore文件中的目录的尾部斜线。

.ebignore

node_modules/ 

没有结尾的斜线,您的本地文件夹node_modules将EB上传 - 包括开发依赖。

+1

最好将'node_modules'添加到'.gitignore'文件中。这解决了这个问题。 –

+0

你是对的 - 这也将解决问题。我有一个'.gitignore',但需要一个单独的'.ebignore'来上传一些也在'.gitignore'中的构建文件。 docs声称'.ebignore'遵循与'.gitignore'相同的语法,但这不完全正确 – jschr

相关问题