使用Capistrano 3的Cron作业和gem时都找不到Gemfile

时间:2015-05-04 10:48:51

标签: ruby-on-rails cron capistrano3 whenever

Cron Job在我的电脑上工作正常。但是当我使用capistrano将它部署到服务器时。 cron.log文件显示它正在查找服务器上不存在的那个版本如何解决此问题。任何想法......?

UILabel

当我运行crontab -e命令时,它显示正确的版本

/home/deployer/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/bundler-1.7.2/lib/bundler/definition.rb:22:in `build': /home/deployer/apps/production_app/releases/20140906112257/Gemfile not found (Bundler::GemfileNotFound)
    from 

我如何解决这个问题......?

1 个答案:

答案 0 :(得分:1)

前一段时间我遇到了同样的问题。事实证明,当cron尝试运行任务时,未定义变量BUNDLE_GEMFILE。所以你需要schedule.rb中的以下内容:

env :BUNDLE_GEMFILE, ENV["/#{path}/Gemfile"]

env :BUNDLE_GEMFILE, ENV["/home/deployer/apps/production_app/current/Gemfile"]

让我知道你的情况会有什么帮助。