2016-03-21 118 views
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

相關問題