2017-04-07 7 views
0

では動作しませんインストールします。私は実際にボリュームがマウントされているドッカーの作成を使ってビルドしています。そして、ホースにnode_modulesフォルダが作成されているのを見ることができません。このイメージでコンテナを起動すると、node_modulesフォルダがないことがわかります。次に、npm installを実行して、すべてのパッケージをインストールするのに2〜3分かかり、node_modulesフォルダが作成されます。NPMは、これは私のDockerfileあるドッカー

ここで何が起こっているか私は間違って何をしていますか?なぜnpmはビルド時に作業をインストールしませんが、実行時には動作しますか?

+1

ボリュームに言及しましたが、それは含まれているコマンドやファイルには表示されません。あなたのdocker-compose.ymlとエラーを示す出力を含めてください。 – BMitch

答えて

0

npm installは、Dockerfileに基づいて動作するはずです。あなたがマウントされたボリューム(:あなたのdocker-compose.ymlが配置されているDIRNAME):なしイメージを実行する場合は、作成したファイルを見ることができます

docker run --rm -it DIRNAME_node ls -ahl /usr/src/app

docker buildでは、すべてのデータを画像に保存されています。したがって、ホスト上に作成されたファイルは表示されません。

ボリュームをマウントする場合(一般にLinuxでもDockerコンテナにも)、それはoverlays the directoryです。したがって、ビルドステップではnode_modulesが作成されていません。

Dockerイメージ自体に基づいてテストを行い、ボリュームをマウントしないことをお勧めします。次に、展開にはより良いimmutable Docker imageがあります。

関連する問題