2013-09-29 18 views
0

我是个尝试添加Whenever gem我的Rails项目,我添加了宝石的Gemfile中Capistrano的+每当宝石:无法部署。“只要是不包的一部分将它添加到Gemfile中”

gem "whenever", "~> 0.8.4" 

并且安装没有任何问题。 然后,我添加了一个简单的任务到生成schedule.rb文件:

set :output, "/home/my_deploy_name/project_name/current/log/cron_log.log" 

every 2.minutes do 
    command "/usr/bin/some_great_command" 
    runner "MyModel.some_method" 
    rake "some:great:rake:task" 
    puts "It's working !!!" 
end 

,然后我添加以下到deploy.rb文件:

set :whenever_command, "bundle exec whenever" 
require "whenever/capistrano" 
namespace :deploy do 
    desc "Update the crontab file" 
    task :update_crontab, :roles => :db do 
    run "cd #{latest_release} && whenever --update-crontab #{application}" 
    end 
end 

我试图建立latest_releasecurrent_pathrelease_path,但在所有情况下总是相同的输出:

*** [err :: IP] sh: 1: 
*** [err :: IP] whenever: not found 
*** [err :: IP] 
... 
*** [err :: 54.221.241.111] /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/rubygems_integration.rb:214:in `block in replace_gem' 
*** [err :: IP] : 
*** [err :: IP] whenever is not part of the bundle. Add it to Gemfile. 
*** [err :: IP] (
*** [err :: IP] Gem::LoadError 
*** [err :: IP]) 
*** [err :: IP] from /home/my_deploy_name/project_name/shared/bundle/ruby/2.0.0/bin/whenever:22:in `<main>' 

何要解决这个问题? (我部署到Amazon EC2上 - Ubuntu的)

感谢

回答

1

“每当” 我就遇到了这个问题...

只是开个玩笑。其实这与卡皮斯特拉诺有关,不是每次。您在没有bundle上下文的情况下调用deploy.rb中的every命令。

run "cd #{latest_release} && whenever --update-crontab #{application}" 

试试这个:

run "cd #{latest_release} && bundle exec whenever --update-crontab #{application}" 
相关问题