docker: Probleme beim Ausführen von npm install nach dem Erstellen eines neuen Benutzers

8

Also habe ich noch eine weitere Frage bezüglich der Installation eines node.js-basierten Frameworks unter Docker auf CoreOS, nach diesen Beitrag .

Also, weil npm schwierig von der Installation von package.json über root ist, musste ich einen Nicht-root-Sudo-Benutzer erstellen, um das Paket zu installieren. Dies ist, was mein Dockerfile im Repo aktuell aussieht, aufbauend auf einem ubuntu-Image:

%Vor%

Ich weiß, dass dies eine unelegante Art ist, Dinge zu tun, aber ich bin ansonsten ratlos, wie ich eine npm-Installation hier fertigstellen kann. Wenn ich das obige versuche, erhalte ich Fehler bei allen Paketen, während sie versuchen zu installieren:

%Vor%

Irgendwelche Gedanken, wie ich meine Dockerfile verändern soll? Ich kann nur davon ausgehen, dass dies ein Berechtigungs-Problem ist, das mit der Art und Weise zu tun hat, wie ich den nonroot -Benutzer darüber eingerichtet habe, der möglicherweise für das Docker-Framework spezifisch ist; Ich habe kein Problem damit, nur eine Vanille-Ubuntu-Installation zu machen, wenn auch nicht aus dem Skript.

    
fox 21.02.2014, 05:57
quelle

3 Antworten

9

Es stellt sich heraus, dass dies ein Problem mit dem Andockfenster sein kann.

konnte das umgehen, indem er stattdessen von USER nonroot auf RUN /bin/su nonroot umschaltete, danach funktionierte alles gut.

    
fox 12.03.2014, 23:15
quelle
8

Ich habe die gleichen Fehler bekommen, als ich versucht habe, irgendein Projekt zu erstellen und letztendlich die Lösung gefunden habe:)

Ich habe diesen Fehler bekommen, weil der Besitzer des .npm-Ordners in meinem Home-Verzeichnis "root" war, also habe ich

benutzt %Vor%

und jetzt kann ich Yeoman und npm ohne Fehler verwenden:)

Ich hoffe, es hilft!

    
quelle
5

Ich habe ein paar Vorschläge für Änderungen / Vorschläge:

  • Speichern Sie Ihre Knotenmodule früher in der Dockerfile mit etwas Ähnlichem (setzen Sie das direkt nach dem apt-get :

    ) %Vor%

    Auf diese Weise werden bei einer Änderung des Anwendungscodes nicht alle Knotenmodule jedes Mal neu erstellt. Setzen Sie dies vor Ihr ADD . /src . Weitere Details / Beispiele finden Sie in meinem Blog-Beitrag .

  • Sie sollten sich nicht darum kümmern müssen, in Ihrem Dockerfile ... Dinge als root auszuführen, das ist der Standard. Vielleicht hängt Ihr Problem nicht mit root zusammen, sondern mit dem Inhalt im Verzeichnis Ihres Hosts. Müssen Sie vielleicht eine Sperrdatei aus dem Code Ihres Codes entfernen?

insitusec 14.03.2014 16:48
quelle

Tags und Links