Ich benutze die neueste öffentliche Betaversion von Docker unter Windows 10.
Ich entwickle eine Node.js-App und verwende Docker mit meinem src-Verzeichnis als Volume in einem Container.
Ich kann nicht rennen npm install
aus dem Container heraus, da hierdurch symbolische Links (im Verzeichnis node_modules) erstellt werden, die in Volumes anscheinend nicht unterstützt werden, wenn der Host Windows ist.
Kann ich irgendetwas tun, um dieses Problem zu lösen?
Ich habe keine Probleme, dies in einer Linux-Umgebung auszuführen.
Nach einigen Recherchen habe ich viele Lösungen für Virtualbox gefunden, die für die "alte" Version von Docker (Docker Toolbox) gedacht sind.
Antworten:
3 für die Antwort № 1Vermeiden symlink
Fehler mit NPM können Sie Befehl verwenden:
npm install --no-bin-links
Allerdings unbedingt vermeiden symlink
Problem, sollten Sie Ihr NodeJS-Projekt nicht in das gemountete Verzeichnis setzen (gemountet von Windows)
3 für die Antwort № 2
Ich habe das folgendermaßen gelöst.
Ich werde es benutzen /usr/src
Als das Verzeichnis, in das der Container eingehängt werden soll, in diesem Beispiel:
- Hängen Sie das src-Verzeichnis Ihrer App an
/usr/src
:-v c:/path/to/src:/usr/src
- Definieren Sie ein Datenvolumen für
node_modules
:-v /usr/src/node_modules
Auf diese Weise haben Sie das c:/path/to/src
wird montiert an /usr/src
und /usr/src/node_modules
wird ein Datenvolumen gemountet.
Das Endergebnis ist, dass das obwohl a node_modules
Verzeichnis auf dem Host erstellt wird, bleibt es leer.
Diese Lösung nutzt Docker-Datenvolumes.
Dies gilt immer dann, wenn Sie verhindern möchten, dass Änderungen in einem Unterverzeichnis eines bereitgestellten Verzeichnisses auf dem Host gemeldet werden, nicht nur für node_modules
.