docker環境で遅いbundle installを劇的に早くする

目的

newsdict.io(docker環境上のrails)でbundle installの時間を早めたい

方法

  • あまりバージョン変更がない最も重たいgemをベースのdocker imageに入れて置きgemを流用できるようにしておく
  • nokogiriを使っていたので、[--use-system-libraries]を使う
  • bundle install を並列で実行する

実際のコード

- あまりバージョン変更がない最も重たいgemをベースのdocker imageに入れて置きgemを流用できるようにしておく

https://github.com/newsdict/docker_rails/blob/master/Dockerfile#L70

- ベースとして使ったdocker image

https://hub.docker.com/repository/docker/newsdict/rails

- nokogiriを使っていたので、[--use-system-libraries]を使う

https://github.com/yubele/newsdict.io/blob/9747c9a4d0a69f8f251f1deb9d6b776856281a2b/Dockerfile#L25

- bundle install を並列で実行する

https://github.com/yubele/newsdict.io/blob/9747c9a4d0a69f8f251f1deb9d6b776856281a2b/Dockerfile#L24

Q&A

bundle installした結果をdocker imageのすればいいのでは?

Gemfileを頻繁に書き換える可能性があるため

コメントを残す

メールアドレスが公開されることはありません。