1

我正在使用 craken 在我的 aws 机器实例上运行 cron 进程。我在 Capistrano 中定义了以下自定义任务:

namespace :craken do
  desc "Install raketab"
  task :install, :roles => :cron do
    set :rails_env, "production" unless exists?(:rails_env)
    set :env_args, (exists?(:env_args) ? env_args : "app_name=#{application} deploy_path=#{current_path}")
    run "cd #{current_path} && rake #{env_args} RAILS_ENV=#{rails_env} craken:install"
  end
  task :uninstall, :roles => :cron do
    set :rails_env, "production" unless exists?(:rails_env)
    set :env_args, (exists?(:env_args) ? env_args : "app_name=#{application} deploy_path=#{current_path}")
    run "cd #{current_path} && rake #{env_args} RAILS_ENV=#{rails_env} craken:uninstall"
  end
end

before "deploy:symlink", "craken:uninstall"
after "deploy:symlink", "craken:install"

问题是之前的 "deploy:symlink", "craken:uninstall" 导致 deploy:cold 在第一次运行时失败,因为 craken raketab 尚未安装。我如何将其配置为仅在它是部署而不是部署时运行:冷?有我可以检查的环境变量吗?

谢谢!

4

2 回答 2

2

不再推荐使用 deploy:cold 任务。

http://www.capify.org/index.php/From_The_Beginning#About_deploy:cold

于 2010-02-12T21:04:43.280 回答
0

快速破解,将破解:卸载更改为

运行“cd #{current_path} && rake #{env_args} RAILS_ENV=#{​​rails_env} craken:uninstall; true”

或者在 deploy:update 上挂钩破解任务

于 2009-05-15T23:11:18.297 回答