我在使用Capistrano 2.5.18和Rake 0.9.2.2的计算机上运行Rails应用程序。 部署工作正常。
我在运行Capistrano 2.12.0和Rake 0.9.2.2的另一台机器上设置了相同的应用程序,它运行到一个点 - 复制文件等 - 但不会运行我的挂钩。
我读到有关deploy:symlink任务被更改为deploy:create_symlink所以我更新了。
这是剥离的食谱...
set :ssh_options, { :forward_agent => true }
set :use_sudo, true
set :deploy_via, :copy
set :copy_strategy, :export
set :copy_compression, :gzip
on :load, 'max:deploy:ask_env'
after 'deploy:create_symlink', 'max:deploy:finalize_update' # DOESN'T WORK!!
namespace :deploy do
task :restart do
run "#{sudo :as => admin_runner} touch #{current_path}/tmp/restart.txt"
end
end
namespace :max do
[...]
namespace :deploy do
# NEVER CALLED!!!
desc "Finalizes update by setting permissions"
task :finalize_update do
run "chgrp -R #{admin_group} #{current_release}; exit 0"
end
end
[...]
end
运行脚本时的最后一位输出看起来像......
* executing `deploy:create_symlink'
* executing "rm -f /home/s-exer1/webapps/max-shared-desktop/application_home/current && ln -s /home/s-exer1/webapps/max-shared-desktop/application_home/releases/20121031124115 /home/s-exer1/webapps/max-shared-desktop/application_home/current"
servers: ["vaomb81"]
[vaomb81] executing command
command finished in 97ms
** transaction: commit
* executing `deploy:restart'
* executing "sudo -p 'sudo password: ' -u s-exer1 touch /home/s-exer1/webapps/max-shared-desktop/application_home/current/tmp/restart.txt"
deploy:create_symlink任务运行,然后跳转到deploy:restart - 跳过我的挂钩。
有关可能导致此问题的任何建议吗?
由于
答案 0 :(得分:0)
可能的原因是您的后续任务之一(可能是sudo
的行)在没有显示输出的情况下失败。一个明显的迹象是,command finished in ...s
甚至没有显示最后一个命令。
答案 1 :(得分:0)
不确定我做错了什么,但事实证明
after 'deploy:create_symlink', 'max:deploy:finalize_update'
适用于Capistrano 2.12.0