LoginSignup
37
34

More than 5 years have passed since last update.

Docker で bundle install を爆速にする

Posted at

Docker、残念なのはbundle installがクソ遅いですね。
ADDでディレクトリを突っ込んでからbundle installされている方が多いと思います。
そうすると、何かしら更新するだけで、Gemfileを変更しているかどうかに関わらず毎回bundle installが走ってしまいます。

もちろんgemフルインストールになるので、1-2分は余裕でかかってしまいますね。
Chef並みに遅くなり、悲しくなるので、対策を書きます。

Dockerfile
##Cache bundle install#################
WORKDIR /tmp
ADD ./Gemfile Gemfile
ADD ./Gemfile.lock Gemfile.lock
RUN bundle install
#######################################

をアプリのADDよりも上の方に入れると結果をキャッシュすることが出来ます。

これでGemfile入りでも4秒くらいでビルドできるようになります。

ところでDockerfileをどこで管理しようか迷っている方がいるかと思いますが、アプリのRootがデフォです。つまりアプリのソースと一緒に管理します。
レジストリを分けて管理するのはDocker wayではありません。

37
34
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
34