3 ms·
I don't think Heroku's deploy is smart enough to recognize that you've packaged, right? It'll still try to bundle install, which would break in the current sit
by timr 14y ago
I don't think Heroku's deploy is smart enough to recognize that you've packaged, right? It'll still try to bundle install, which would break in the current situation.
I think a full solution requires packaging, and using a modified buildpack that skips the bundle step.
- gry 14y ago$ bundle package Places the gem binaries in vendor/cache, as noted. SCM those. "While installing gems, Bundler will check vendor/cache and then your system's gems. If a gem isn't cached or installed, Bundler will try to install it from the sources you have declared in your Gemfile." http://gembundler.com/bundle_install.html http://gembundler.com/bundle_install.html Heroku uses this tree lookup AFAIK.
- timr 14y agoYeah, I knew that part...I wasn't sure what the default heroku ruby buildpack did. I'm still digging into the source to see what the build process is. It's non-trivial. UPDATE: For others' edification, the default heroku ruby buildpack respects vendor/cache, but will purge it in the following scenarios: * if vendor/ruby_version exists * if vendor/heroku/buildpack_version exists, but vendor/heroku/ruby_version does not * if the bundler cache exists, but vendor/heroku/ruby_version file specifies a different version of ruby than the one actually being used.