如果Gemfile没有改动,我们可以使用warm cache,而不是每次都需要重新build。这里的一个trick就是需要先添加Gemfile,再bundle install
, 而不是先ADD . $APP_HOME
,再bundle install
。因为通常代码会有改动,一旦有改动,docker就不会使用cache。这种方式在这篇文章里面有详细介绍。
另外一种策略就是用bundle自身的cache策略。使用bundle install --local
就可以使用vendor/cache
目录下面的gem,而不再需要从远程获取。这里介绍了这种方法。