1

Ich versuche, eine einfache Node.js-Anwendung auf Elastic Beanstalk mit den Befehlszeilentools zu installieren.Node.js Bereitstellung schlägt auf Amazon Elastic Beanstalk aufgrund von Verzeichnisberechtigungen fehl

Auf meinem Git Repository betreibe ich den Befehl

$ eb deploy 

den Inhalt meiner Git Repository zu implementieren. Es wird gut ausgeführt, der Status der Anwendung ist jedoch rot.

Wenn ich die Protokolle auf der Elastic Beanstalk Website aussehen, zeigt es mir an folgende Fehler in den Protokollen:

> [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 

Ich mag verschiedene Dinge ausprobiert:

  1. das Verzeichnis selbst erstellen (Die Verzeichnisse gehören Root).
  2. Alles von/tmp löschen, damit hoffentlich das nächste Mal sich selbst repariert.
  3. Löschen des Knotens node_modules.

Keine dieser Optionen funktioniert und ich kann keine Abhilfe oder einen Grund finden, warum dies passiert. Ich kann die node.js-App lokal ausführen und sie ohne Probleme auf Azure und Heroku bereitstellen.

+0

Ich habe das gleiche Problem, haben Sie etwas herausgefunden? Die vorgeschlagene Antwort war nicht mein Problem – ParoX

+0

Ich habe herausgefunden, dass ein Modul versuchte, ein anderes Modul mit 'npm install' im' preinstall'-Bereich ihres package.json zu installieren. Hoffentlich ist das auch dein Problem. – ParoX

+0

Ich habe mein Problem behoben, indem ich 'node_modules' im git-Repository nicht eincheckte. 'npm install' erstellt sie automatisch. –

Antwort

4

Verbrachten einen ganzen Tag Debugging dieser Fehler. Es stellt sich heraus, dass Sie einen nachgestellten Schrägstrich für Verzeichnisse in Ihrer .ebignore-Datei benötigen.

.ebignore

node_modules/ 

Ohne den Schrägstrich, wird Ihre lokale node_modules Ordner eb hochgeladen werden - dev Abhängigkeiten einschließlich.

+1

Es ist vorzuziehen, 'node_modules' zu Ihrer' .gitignore' Datei hinzuzufügen. Das löst dieses Problem. –

+0

Sie haben Recht - das wird auch das Problem lösen. Ich hatte einen '.gitignore', brauchte aber ein separates' .ebignore', um einige Build-Dateien, die sich auch in '.gitignore' befinden, hochzuladen. Die Dokumente behaupten, dass ".ebignore" der gleichen Syntax wie ".gitignore" folgt, aber das stimmt nicht genau – jschr