お世話になります。
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も最新版にアップデートをしても同じでした。
長くなってしまい申し訳ありません。
心当たりのある方がもしいらしたら、どうぞ宜しくお願い致します。
ここまでお読みいただきありがとうございました。
回答1件
あなたの回答
tips
プレビュー