for*_*sth 5 symlink capistrano ruby-on-rails
我正在使用capistrano来部署我的Ruby on Rails项目.我在Dreamhost VPS上,几个星期前,在没有改变capistrano或乘客的情况下,我开始遇到一个奇怪的部署问题:
每次capistrano部署我的应用程序时,一切都正常,除了deploy:symlink(默认情况下调用),它应该将"当前"目录指向最新版本.虽然新版本已正确部署到"版本"目录,但问题是"当前"符号链接始终设置为先前版本而不是新版本.所以我可以部署应用程序,但我总是必须连续两次运行部署.
你可以在这里看到capistrano日志:http: //img715.imageshack.us/img715/7803/capistranoproblemb.png
有没有其他人经历过这个或者可以帮助我解决它?
谢谢!
我通过一个额外的部署任务来解决这个问题,该任务使用不同的内部变量名重新创建符号链接,其中包含最新版本的正确路径(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"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12208 次 |
| 最近记录: |