jsファイルの縮小版を使用してプロダクションドッカーコンテナを構築しようとしています。docker-composeビルドプロセス中にwebpackビルドを実行します。
私のDockerfile
では、npmパッケージをインストールした後、webpackコンパイルを構築しようとしています。
RUN npm install -g n # upgrading the npm version
RUN n stable
ADD ./webpack/package.json /package.json
RUN npm install --production
RUN npm run build-production # <<< Fails here
ドッキングウィンドウのビルドプロセスには(NODE_PATH
が設定されている)、それがインストールされたパッケージを見つけることができないという不満をNPMとの最後のコマンドRUN npm run build-production
中に失敗します。
ただし、のスクリプトをENTRYPOINT
スクリプトに追加すると、正常に動作し、すべてが正常にコンパイルされます。しかし、それはwebpackを実行して、コンテナを開始するすべてのものをビルドします。これは望ましくありません。
前回のステップでインストールしたパッケージを最後のドッキング・ビルド・ステップで見つけることができないのはなぜですか?しかし、なぜそれがエントリポイントのスクリプトを介して動作しますか?
私のDockerfileのドッカービルドにwebpackビルドを追加する最も良い方法は何ですか?
正確なエラーメッセージが表示されますか? 'build-production'のための彼の依存関係の一つが' devDependencies'の下にリストされている可能性はありますか?それはそれが見つからないのですか? '--production'フラグのためにインストールされていませんか?実行時にボリュームを使用していますか? – dnephin
@dnephinご意見ありがとうございます。すべてのパッケージは '--production'の依存関係に含まれています。私も '--production'なしで同じエラーが発生します。はい、ボリュームを使用しています。ビルド中にアクセスできないのですか? – neurix
いいえ、ボリュームはビルド中にアクセスできません。 – dnephin