Rails deployment strategies with Bundler and JRuby
- by brad
I have a jruby rails app and I've just started using bundler for gem dependency management. I'm interested in hearing peoples' opinions on deployment strategies. The docs say that bundle package will package your gems locally so you don't have to fetch them on the server (and I believe warbler does this by default), but I personally think (for us) this is not the way to go as our deployed code (in our case a WAR file) becomes much larger.
My preference would be to mimic our MVN setup which fetches all dependencies directly on the server AFTER the code has been copied there. Here's what I'm thinking, all comments are appreciated:
Step1: Build war file, copy to server
Step2: Unpack war on server, fetch java dependencies with mvn
Step3: use Bundler to fetch Gem deps (Where should these be placed??)
* Step 3 is the step I'm a bit unclear on. Do I run bundle install with a particular target in mind??
Step4: Restart Tomcat
Again my reasoning here is that I'd like to keep the dependencies separate from the code at deploy time. I'd also like to place all gem dependencies in the app itself so they are contained, rather than installing them in the app user's home directory (as, again, I believe is the default for Bundler)