2016-06-18 2 views
1

PluralsightからDockerコースを見ています。今ダウンロードしたDockerコンテナでDockerソースを実行する必要があります。Windowsのノードコンテナにサンプルエクスプレスアプリを実行できません

現在のパスにpackage.jsonというファイルがありますが、認識されません。

[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 

なぜPluralsightは同じことを行い、それが動作しますか?私のバージョンで何が間違っていますか?

答えて

2

https://docs.docker.com/engine/userguide/containers/dockervolumes/公式ドキュメントから:

あなたがMacやWindows上ドッカーマシンを使用している場合は、あなたのエンジンデーモンは、お使いのOS XまたはWindowsのファイルシステムにのみ制限されたアクセス権を持っています。 Docker Machineは、/ Users(OS X)またはC:\ Users(Windows)ディレクトリを自動的に共有しようとします。したがって、OS X上でファイルやディレクトリをマウントすることができます。 Windowsでは

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

、使用してディレクトリをマウント:

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

をので、あなたのコードでC:\Users\<your_username>(例えばcode)内のディレクトリを作成し、コンテナ内でそれをマウントすることができますように:

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

はあなたのコードが/var/www/ディレクトリ

pwd戻り/c/Users/<my_username>に容器内部の利用できるようになりますのでご注意ください。 Dockerターミナルで自分で試してみてください。


あなたは便宜上pwdを使用することができます。

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

コースとDockerizeすべてのものと

幸運!

関連する問題