[LRUG] Rake binstub

Stephen Best bestie at gmail.com
Thu Oct 9 02:36:45 PDT 2014


Really good point Sam!

I'm not sure what the virtue of removing the `cd` step from your cronjob
is. It sounds way more trouble than it's worth. However this was
interesting to think about the answers were great also.

Gerhard - Not using `bundle exec` in production seems like introducing an
unnecessary discrepancy between environments. I'm sure the core point
you're making is that production servers should have no extraneous packages
installed but I'm just not sure enforcing that by giving up isolation is a
good thing.


Stephen Best

theaudaciouscodeexperiment.com
github.com/bestie
@thebestie

On 9 October 2014 10:11, Sam Phippen <samphippen at googlemail.com> wrote:

> I heard http://12factor.net/dependencies 12 factor apps were a pretty
> good idea.
>
> On 8 Oct 2014, at 19:12, Gerhard Lazu <gerhard at lazu.co.uk> wrote:
>
> ... and by "bundle exec" I mean bundler/binstubs/rvm/rbenv/chruby, the
> whole lot.
>
> On Wednesday, 8 October 2014, Gerhard Lazu <gerhard at lazu.co.uk> wrote:
>
>> bundle exec usage should stop at your CI/CD.
>>
>> Production should always have a single version of the correct dependency
>> (whether it's the Ruby binary, gem or C extension).
>>
>> Heroku Ruby app slugs and CloudFoundry Ruby app droplets are good
>> examples of this principle in practice.
>>
>> Gerhard
>>
>> On Wednesday, 8 October 2014, Andrew Stewart <boss at airbladesoftware.com>
>> wrote:
>>
>>> Hello!
>>>
>>> For a long time I have had on my server a cronjob which runs a rake task:
>>>
>>>     42 * * * * RAILS_ENV=production cd /path/to/my/app && bundle exec
>>> rake blah
>>>
>>> Recently I decided to get with the program and use a binstub instead:
>>>
>>>     42 * * * * RAILS_ENV=production /path/to/my/app/bin/rake blah
>>>
>>> But it fails with: "rake aborted! No Rakefile found".  Naturally there
>>> is a Rakefile at /path/to/my/app.
>>>
>>> My rake binstub is the one that comes with Rails 4:
>>>
>>>
>>> https://github.com/rails/rails/commit/009873aec89a4b843b41accf616b42b7a9917ba8#diff-15
>>>
>>> – not the one that Bundler would generate:
>>>
>>>     #!/usr/bin/env ruby
>>>     #
>>>     # This file was generated by Bundler.
>>>     #
>>>     # The application 'rake' is installed as part of a gem, and
>>>     # this file is here to facilitate running it.
>>>     #
>>>
>>>     require 'pathname'
>>>     ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
>>>       Pathname.new(__FILE__).realpath)
>>>
>>>     require 'rubygems'
>>>     require 'bundler/setup'
>>>
>>>     load Gem.bin_path('rake', 'rake')
>>>
>>> After doing some research on this I learned it's controversial, a
>>> surprise for Rails ;)
>>>
>>> Now that the dust has settled, what's the generally recommended
>>> approach?  Keep the Rails-generated binstub for rake, and cronjobs that cd
>>> into the app directory, or go for a bundler-generated binstub (which
>>> presumably works from anywhere)?
>>>
>>> Thanks in advance,
>>>
>>> Andy Stewart
>>> _______________________________________________
>>> Chat mailing list
>>> Chat at lists.lrug.org
>>> Archives: http://lists.lrug.org/pipermail/chat-lrug.org
>>> Manage your subscription:
>>> http://lists.lrug.org/options.cgi/chat-lrug.org
>>> List info: http://lists.lrug.org/listinfo.cgi/chat-lrug.org
>>>
>>
>>
>> --
>>
>> ------------------------------
>> Twitter <http://twitter.com/#!/gerhardlazu> Github
>> <https://github.com/gerhard> Blog <http://gerhard.lazu.co.uk/>
>>
>>
>
> --
>
> ------------------------------
> Twitter <http://twitter.com/#!/gerhardlazu> Github
> <https://github.com/gerhard> Blog <http://gerhard.lazu.co.uk/>
>
> _______________________________________________
> Chat mailing list
> Chat at lists.lrug.org
> Archives: http://lists.lrug.org/pipermail/chat-lrug.org
> Manage your subscription: http://lists.lrug.org/options.cgi/chat-lrug.org
> List info: http://lists.lrug.org/listinfo.cgi/chat-lrug.org
>
>
>
> _______________________________________________
> Chat mailing list
> Chat at lists.lrug.org
> Archives: http://lists.lrug.org/pipermail/chat-lrug.org
> Manage your subscription: http://lists.lrug.org/options.cgi/chat-lrug.org
> List info: http://lists.lrug.org/listinfo.cgi/chat-lrug.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lrug.org/pipermail/chat-lrug.org/attachments/20141009/e7efde17/attachment-0003.html>


More information about the Chat mailing list