1

AWS マシン インスタンスで cron プロセスを実行するためにcraken を使用しています。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"

問題は、craken raketab がまだインストールされていないため、before "deploy:symlink", "craken:uninstall" によって deploy:cold が最初の実行で失敗することです。これが deploy:cold ではなく deploy である場合にのみ実行されるように構成するにはどうすればよいですか? 確認できる環境変数はありますか?

ありがとう!

4

2 に答える 2

2

deploy:cold タスクの使用は推奨されなくなりました。

http://www.capify.org/index.php/From_The_Beginning#About_deploy:コールド

于 2010-02-12T21:04:43.280 に答える
0

クイックハック、cracken:uninstall への変更

「cd #{current_path} && rake #{env_args} RAILS_ENV=#{​​rails_env} craken:uninstall; true」を実行します

または deploy:update で cracken タスクをフックする

于 2009-05-15T23:11:18.297 に答える