bin/webpackに必要最小限のファイル
前回と同様に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を起動するために必要なファイルを生成するビルドにすぎない。