bin/webpackに必要最小限のファイル

#rails#docker

前回と同様にwebpackerによるbundleに必要最小限なファイルのCOPYを試してみた。

FROM starefossen/ruby-node:2-8-alpine
WORKDIR /myapp

COPY app/javascript /myapp/app/javascript/
COPY bin/webpack /myapp/bin/
COPY config/webpack /myapp/config/webpack/
COPY config/webpacker.yml /myapp/config/webpacker.yml
COPY .babelrc .postcssrc.yml /myapp/
COPY Gemfile Gemfile.lock /myapp/
COPY --from=bundler /usr/local/bundle /usr/local/bundle
RUN bin/webpack
  • webpackerを使うにはRubyとNodeの両方が必要になるため両方が入ったベースイメージを探したところ、starefossen/ruby-nodeがよさそうだった。
  • COPY --from=bundlerとしているところは、multi-stage buildを使っている。前段のビルドでbundle installしておいたものをCOPYしている。こうすることで実行時には不要なものを除くことができる。このビルド自体もRailsを起動するために必要なファイルを生成するビルドにすぎない。