2016-09-09 13 views
2

私はドッカーと初心者だと私はそうここNodeJSで始まるしようとしているが、私の質問ですは、私は私のプロジェクト内でこのDockerfileを持っている... findeモジュール(ドッカとノードアプリ)「を表現する」

をすることはできません。

FROM node:argon 

# Create app directory 
RUN mkdir -p /home/Documents/node-app 
WORKDIR /home/Documents/node-app 

# Install app dependencies 
COPY package.json /home/Documents/node-app 
RUN npm install 

# Bundle app source 
COPY . /home/Documents/node-app 

EXPOSE 8080 
CMD ["npm", "start"] 

私はそれが正常に動作しますdocker run -d -p 49160:8080 node-containerの入った容器を実行

...

をしかし、私はコンテナディレクトリ(docker run -p 49160:8080 -v ~/Documentos/nodeApp:/home/Documents/node-app node-cont)と私のホストプロジェクトをマップしようとすると、それは動作しません。

私が手にエラーがある:私は関連の質問が、何もないから、他のソリューションを試してみたError: Cannot find module 'express'

私のために働くようだ(または私が知っている..私はこれであまりにも新人だ)

ありがとうございました!あなたは、コンテナの中にあなたのドッカーエンジンのホストからディレクトリをマウント意味-vフラグを使用してコンテナを実行すると

+0

私はこの問題を抱えていました。 'npm install --save express'を実行し、' docker build -t .'を再構築しました。 – camou

答えて

0

、あなたがそのようなNPMとして、/ホーム/書類/ノードアプリに何をすべきかが上書きされますインストール。

したがって、node_modulesディレクトリがコンテナに表示されません。 、/ webappのこのコマンドは、ホストディレクトリをマウントし、/ SRC/webappのトレーニング/ Webアプリケーションのpython app.py

へ:

$は、-d -P --nameウェブ-v/SRC/Webアプリケーションを実行しドッカー/ webappのコンテナ。パス/ webappがコンテナのイメージ内にすでに存在する場合、/ src/webappマウントはオーバーレイされますが、既存のコンテンツは削除されません。マウントが解除されると、コンテンツに再びアクセスできます。これは、mountコマンドの予想される動作と一致しています。

mount a host directory as a data volumeドキュメントが言ったの.as、ホストディレクトリの既存の内容は削除されませんが、コンテナのが存在するディレクトリに何が起こっているのかについての情報はありません。

私の意見を支持する例があります。

  1. Dockerfile

    FROM alpine:latest WORKDIR /usr/src/app COPY . .

  2. 私はDockerfileの同じディレクトリにtest.tファイルを作成します。

    1. Runコマンドdocker build -t test-1 .
    2. Runコマンドdocker run --name test-c-1 -it test-1 /bin/shを証明

    3. は、その後、あなたのコンテナは、bashのを開きます。

    4. コンテナbashにコマンドls -lを実行すると、test.tファイルが表示されます。
    5. 同じ画像を使用してください。
    6. 実行コマンドdocker run --name test-c-2 -v /home:/usr/src/app -it test-1 /bin/sh。ファイルtest.ttest-c-2コンテナに見つけることができません。 all.Iだ

は、それはあなたを助けることを願っています。

関連する問題