質問: お世話になります。 Windows 10 Home Visual Studio Code (PowerShell) Docker ToolBox (DockerToolbox-18.09.0) を使用しております。 ReactをDockerで使用するのに、 ホスト(Windows10)とゲスト(alpine)間で、共通フォルダとDockerが上手く動作せず困っています・・・。 共通フォルダを作らない(-vを使用しない)場合ですと、Dockerは問題なく動作します。 具体的には、作成したコンテナのalpine内でcreate-react-app test1 コマンドを打ち、 Reactのtest1ディレクトリが作成され、 ホスト側(Windows10)のブラウザのlocalhostからも問題なくReact Appが表示されます。 しかし、docker run 時に -v コマンドにより、 ホストとゲストで共通フォルダ(docker-common)を作成すると失敗してしまいます。 ゲスト内からのcreate-react-app test1 コマンドより、 ホスト(Windows10)のdocker-commonフォルダに test1というディレクトリが最初は作られるのですが、 create-react-appが進むにつれ途中でnpmにエラーが起き、 test1ディレクトリがホストのdocker-commonフォルダからも削除されてしまいます。 詳細は以下になります。 Dockerfileに ``` FROM alpine ENV wkdir docker-common WORKDIR /usr/app/$wkdir RUN apk add nodejs RUN apk add npm RUN npm i -g create-react-app ENTRYPOINT sh ``` を記述し、 ``` docker build -t react-01 . ``` よりreact-01というImageを作成し、 ``` docker run -it --name my-app-1 -p 3000:3000 -v //d/programming/docker/docker-common:/usr/app/docker-common react-01 ``` というrunコマンドでmy-app-01という名のコンテナを作成しました。 Dockerfileよりすでにnpmもcreate-react-appも作られているので、 create-react-app test1 と入力し、 test1という名のReactディレクトリを作成したいのですが・・・以下のエラーが表示され叶いません。 ``` #Dockerfileよりコンテナを作成 PS D:\programming\docker\dockerfiles> docker run -it --name my-app-1 -p 3000:3000 -v //d/programming/docker/docker-common:/usr/app/docker-common react-01 #コンテナが作成されその中に自動で入る #create-react-app test1 と打ち、test1というReactディレクトリをnpmより作成 /usr/app/docker-common # create-react-app test1 Creating a new React app in /usr/app/docker-common/test1. #ホスト(windows10)のdocker-commonフォルダ内にtest1ディレクトリを視認 Installing packages. This might take a couple of minutes. Installing react, react-dom, and react-scripts... #しかし、ここで突然エラーが・・・ npm ERR! path /usr/app/docker-common/test1/node_modules/@hapi/topo/node_modules/@hapi/hoek/package.json.769352676 npm ERR! code ENOENT npm ERR! errno -2 npm ERR! syscall open npm ERR! enoent ENOENT: no such file or directory, open '/usr/app/docker-common/test1/node_modules/@hapi/topo/node_modules/@hapi/hoek/package.json.769352676' npm ERR! enoent This is related to npm not being able to find a file. npm ERR! enoent npm ERR! A complete log of this run can be found in: npm ERR! /root/.npm/_logs/2019-08-10T19_09_04_454Z-debug.log Aborting installation. npm install --save --save-exact --loglevel error react react-dom react-scripts has failed. #ホスト(Windows10)のdocker-common内に作られていたtest1ディレクトリが削除されてしまう Deleting generated file... node_modules Deleting generated file... package.json Deleting test1/ from /usr/app/docker-common Done. #失敗に終わる /usr/app/docker-common # ``` 最初にも申し上げた様に、共通フォルダを作らない(-vを使用しない)場合ですと、 create-react-appにはこのエラーは起きずReact Appが作成されます。 create-react-appコマンドではなく、mkdirコマンドで適当なディレクトリを作る分には、 ちゃんと作成されホストのdocker-common内にもmkdirフォルダ(ディレクトリ)は表示されます。 npmもnode.jsも最新版にアップデートをしても同じでした。 長くなってしまい申し訳ありません。 心当たりのある方がもしいらしたら、どうぞ宜しくお願い致します。 ここまでお読みいただきありがとうございました。
回答: 皆様ありがとうございます。 返信が遅れてしまい申し訳ありません。 logを見ても@の有無についてやってみても解決には至りませんでした; 結局Proにアップグレードしてdocker for windowsにしました。 ありがとうございました!