Fehler: EACCES: Berechtigung verweigert, wenn 'npm install' auf Elastic Beanstalk ausgeführt wird

9

Ich habe eine standardmäßige clean node.js-App über Elastic Beanstalk bereitgestellt und ein node.js-Skript versucht, npm install im Projektverzeichnis auszuführen ( /var/app/current/deploy-dist ), jedoch wird der folgende Berechtigungsfehler ausgelöst:

%Vor%

Das package.json ist nur ein:

%Vor%

Das Ausführen von npm install mit sudo funktioniert offensichtlich, wird aber bevorzugt als Lösung vermieden.

Setzen Sie NPM_CONFIG_PREFIX auf ein Verzeichnis bei ~ gemäß npm docs suggestion hat auch nicht funktioniert, und das Problem besteht weiter.

Ich vermute, dass das Problem in falschen Berechtigungen für /tmp/.npm liegt, die

sind %Vor%

Das ist verwirrend, da ich erwartet habe, dass eine einfache npm install aus der Box funktioniert.

UPDATE: Sollte das Projektverzeichnis nicht bereits einen node_modules Ordner enthalten, aber selbst wenn Sie es entfernen und npm install ausführen, wird es nicht repariert.

    
Sbbs 27.12.2016, 19:17
quelle

2 Antworten

5

Ich hatte dieses Problem! Sie können ebextensions verwenden, um ein Skript nach der Bereitstellung , das die Berechtigungen des Ordners tmp/npm/.locks ändert.

Erstellen Sie in Ihrem node.js-Projekt einen .ebextensions -Ordner, wenn Sie noch keinen Ordner haben. Fügen Sie dann eine neue Konfigurationsdatei hinzu, z. 00_create_postdeploy_script.config , mit folgendem yaml:

%Vor%

Bei der Bereitstellung wird ein Skript in /opt/elasticbeanstalk/hooks/appdeploy/post namens 99_fix_node_permissions.sh erstellt, das wie folgt aussieht:

%Vor%

Da es sich in diesem post -Ordner befindet, wird es automatisch ausgeführt, nachdem Ihre App bereitgestellt wurde - und somit die Berechtigungen nach Bedarf ändern.

BEARBEITEN: Wenn Sie Probleme mit den Berechtigungen des ganzen .npm -Ordners haben, sollten Sie die letzte Zeile der Konfigurationsdatei auf <ändern / p> %Vor%     

hsriskantha 12.01.2017, 15:08
quelle
1

Ich hatte dieses Problem in der Vergangenheit und in meinem Fall bereinigt der Cache mein Problem behoben. Bitte versuchen Sie dies

%Vor%

Ich hoffe, es hilft.

    
myke_11j 28.12.2016 12:06
quelle