は、実際にノードjsのための私のdockerfileを作成するために、私nodejsベースイメージ上で次のコマンドを使用します。私は実行する必要があるので、私はこの方法で満足していないドッカーベストプラクティスnodejsと静的ファイル
RUN \
apt-get update && \
apt-get install -y --no-install-recommends git python build-essential libpng-dev && \
apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Install production package only
COPY package.json /var/www/site
RUN \
npm install && \
npm cache clean
COPY . /var/www/site
RUN \
npm run build && \
npm run doc
RUN \
npm prune --production && \
npm cache clean
ENV NODE_ENV=production
をアプリケーションのクライアント部分を作成する "npm run build"(webpack、backbone、marionnetteに基づいています)。
私は "npm run build"コマンドを実行するので、私は開発パッケージだけでなく、イメージを最小化するためにいくつかのdebianパッケージをインストールする必要があります。
私は、イメージにはプロダクションパッケージのみが含まれていて、devのものは含まれないようにしたいと思います。
私がプロダクションファイルだけを置くと、ビルドマシンでクライアントコードを生成する必要があります。だから私はnodejsとすべての必要なパッケージをホストマシンにインストールする必要があります。私はドッカーですべてをビルドすることを勧めます。
2回目は、nodeginfoコンポーネントからではなく、nginxから直接静的ファイルを提供したいと思います。しかし、私はnginxイメージにノードをインストールしたくありません。
ドッカーの基本的な慣行は何ですか?ドロッカー内のすべてをビルドして、再現性のあるイメージを作成しますか?結果だけをドッキングしてホストとパッケージにビルドしますか?
おかげ