jordansissel / fpm

Effing package management! Build packages for multiple platforms (deb, rpm, etc) with great ease and sanity.
http://fpm.readthedocs.io/en/latest/
Other
11.16k stars 1.07k forks source link

Let frpm build packages from folders with dependencies out of Gemfiles #673

Open martinseener opened 10 years ago

martinseener commented 10 years ago

I have several co-workers who constantly creating rails or sinatra applications which itself have dependencies coded in so called Gemfiles. It would be really nice for fpm to build the folders where the application resides in by taking care of an eventually existing Gemfile while adding all dependent gems for the application also as a dependency for the package, so its quite as easy to install the package later and already have all dependencies added in the applications vendor folder, ready to start the application by pointing passenger to it (or using WebRICK).

It would eliminate the need for the Ops to do a "bundle install" before but instead just install the package and done.

jordansissel commented 10 years ago

Question, can you do 'bundle install' and target some local ./vendor/ directory then use fpm -s dir ... to package up the app + ruby dependencies in the same directory?

martinseener commented 10 years ago

Yeah, i did a "bundle install --deployment" in an applications folder, creating a vendor folder with all the gems from the Gemfile in it for the application to work. This is just the small automation i want to see in fpm when packaging such an application folder - do this manual step for me, so when installing the package with puppet i can conveniently use pleaserun to run it with "rackup" for example without the need to manually get all the gems, because fpm took care and packed all gems in that folder for me.

dont think thats a too complicated thing....

rmldsky commented 9 years ago

I've stumbled upon this issue while researching a way to feed fpm with Gemfile for dependencies. Not sure if this is doable or even in your scope of focus. Just wanted to check.

Doing a "bundle" package from app directory + gems installed to vendor/ has one disadvantage, when there are a lot of gems or they are heavy taking notable disk space. Transferring them around (build space/CI -> S3 repository -> box(-es)) may take time etc. Having deb per gem approach is also helpful when one tiny gem changes it can be supplied to repository outside of those CI pipeline.

Any way nice feature to have, not critical thou, as could be somehow scripted I guess.

Thanks for the great work!