我正在使用 capistrano 部署我的 Ruby on Rails 项目。我使用的是 Dreamhost VPS,从几周前开始,在 capistrano 或乘客没有任何变化的情况下,我开始在部署中遇到一个奇怪的问题:
每次 capistrano 部署我的应用程序时,除了部署:符号链接(默认情况下调用)之外,一切都正常,它应该将“当前”目录指向最新版本。尽管新版本已正确部署到“releases”目录,但问题是“当前”符号链接始终设置为先前版本而不是新版本。所以我可以部署应用程序,但我总是必须连续运行部署两次。
您可以在此处查看 capistrano 日志:http://img715.imageshack.us/img715/7803/capistranoproblem.png http://img715.imageshack.us/img715/7803/capistranoproblemb.png
有其他人以前经历过这个问题或者可以帮助我解决这个问题吗?
Thanks!
我通过一个额外的部署任务解决了这个问题,该任务使用不同的内部变量名称和最新版本的正确路径(release_path而不是latest_path或类似的东西)重新创建符号链接。
namespace :deploy do
desc "Recreate symlink"
task :resymlink, :roles => :app do
run "rm -f #{current_path} && ln -s #{release_path} #{current_path}"
end
end
after "deploy:create_symlink", "deploy:resymlink", "deploy:update_crontab"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)