【发布时间】:2011-06-15 12:18:33
【问题描述】:
我们正在使用 Capistrano/Webistrano(与 Lee Hambley 的 railsless-deploy gem)将我们的 PHP 应用程序推送到生产服务器。我有一些自定义任务会在部署过程的各个部分运行。
例如,我有一些任务会尝试停止和重新启动 jetty solr 实例。然而,有时这个位在部署过程中会失败,因此 Capistrano 会回滚整个部署并恢复到以前的版本。这是一种痛苦。 :-)
我想告诉 Capistrano 忽略这些任务的返回结果,因此,如果它们失败,Capistrano 将继续按原样进行并完成部署。事后我很容易通过 ssh 连接到服务器并正确地终止并重新启动 solr 实例,而不必再次进行完整的部署。
这是部署脚本的一些相关部分:
before "deploy:symlink", :solr_kill
after "deploy:symlink", :solr_start, :solr_index
task :solr_kill do
run "cd #{current_path}/Base ; #{sudo} phing solr-kill"
end
task :solr_start do
run "cd #{current_path}/Base ; #{sudo} phing solr-start"
run "sleep 10"
end
task :solr_index do
run "#{sudo} #{current_path}/Base/Bin/app.php cron run solr_index_cron"
end
【问题讨论】:
标签: capistrano