Fix Ruby Bundler Issues in Cron Jobs
RubyThe Problem
Ruby cron jobs fail with 'Could not find gem' errors because cron doesn't load your rbenv/rvm environment or Bundler context.
The Solution
Use bash -lc or explicitly set the Ruby environment in your crontab. Add monitoring to catch these environmental failures.
The Environment Problem
Cron uses a minimal shell environment. Ruby version managers (rbenv, rvm, asdf) set up the Ruby path via shell dotfiles that cron doesn't load.
Code Examples
Crontab with proper environment
Bash# Load full environment with bash -lc
0 2 * * * /bin/bash -lc 'cd /app && bundle exec rake maintenance:cleanup && curl -fsS -m 10 --retry 5 --retry-all-errors https://ping.cronrabbit.com/your-id'
# Or set PATH explicitly
PATH=/home/deploy/.rbenv/shims:/usr/local/bin:/usr/bin:/bin
0 2 * * * cd /app && bundle exec rake maintenance:cleanup && curl -fsS -m 10 --retry 5 --retry-all-errors https://ping.cronrabbit.com/your-id