2016-06-18 11 views
1

Ich beobachte einen Docker-Kurs von Pluralsight und ich muss eine Docker-Quelle auf einem Docker-Container ausführen, den ich gerade heruntergeladen habe.Sample-Express-App kann nicht im Knoten-Container unter Windows ausgeführt werden

Obwohl ich package.json Datei im aktuellen Pfad habe, wird es nicht erkannt.

[email protected] MINGW64 /d/node/ExpressSite 
$ docker run -p 8080:3000 -v /$(pwd):/var/www -w "/var/www" node:4.4.5 npm start 
npm info it worked if it ends with ok 
npm info using [email protected] 
npm info using [email protected] 
npm ERR! Linux 4.4.12-boot2docker 
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "start" 
npm ERR! node v4.4.5 
npm ERR! npm v2.15.5 
npm ERR! path /var/www/package.json 
npm ERR! code ENOENT 
npm ERR! errno -2 
npm ERR! syscall open 

npm ERR! enoent ENOENT: no such file or directory, open '/var/www/package.json' 
npm ERR! enoent This is most likely not a problem with npm itself 
npm ERR! enoent and is related to npm not being able to find a file. 
npm ERR! enoent 

npm ERR! Please include the following file with any support request: 
npm ERR!  /var/www/npm-debug.log 

Warum das Pluralsight das gleiche tut und es funktioniert? Was ist falsch an meiner Version?

Antwort

2

Von offiziellen Dokumenten https://docs.docker.com/engine/userguide/containers/dockervolumes/:

Wenn Sie Docker-Maschine auf dem Mac oder Windows verwenden, hat Ihr Motor-Daemon nur eingeschränkten Zugriff auf Ihre OS X oder Windows-Dateisystem. Docker Machine versucht, das Verzeichnis/Benutzer (OS X) oder C: \ Benutzer (Windows) automatisch freizugeben. So können Sie Dateien oder Verzeichnisse unter OS X mit mounten.

docker run -v /Users/<path>:/<container path> ...

Unter Windows Mount-Verzeichnisse verwenden:

docker run -v /c/Users/<path>:/<container path> ...

So können Sie ein Verzeichnis innerhalb C:\Users\<your_username> (code zum Beispiel) erstellen mit Ihrem Code und montieren sie im Inneren des Behälters wie folgt:

docker run -p 8080:3000 -v /c/Users/<your_username>/code:/var/www -w "/var/www" node:4.4.5 npm start

Bitte

beachten Sie, dass der Code innerhalb des Behälters in /var/www/ Verzeichnis verfügbar sein wird

pwd kehrt /c/Users/<my_username>. Probieren Sie es selbst im Docker Terminal aus.


Sie können pwd Einfachheit halber verwenden:

docker run -p 8080:3000 -v $(pwd)/code:/var/www -w "/var/www" node:4.4.5 npm start

Viel Glück mit dem Verlauf und Dockerize aller Dinge!

Verwandte Themen