2017-08-10 60 views
0

Capistrano v2有两个有用的任务:cap deploy:update_code将完全部署到新的releases/目录,但不会更改符号链接或启动/重新启动服务器(以便服务器继续运行当前版本而不会中断)。而cap deploy:update做了同样的事情,加上更改current符号链接,但没有启动/重新启动服务器。这些对于解决问题很有用在进行真正的部署之前进行资产编制。如何使用Capistrano 3部署而不是符号链接/重新启动?

这两个“更新”任务在Capistrano v3中消失了。是否有一种等同的方式可以在不更改current符号链接或重新启动服务器的情况下完成全面部署?

回答

2

自定义任务列表这应该这样做:

task :deploy_without_symlink do 
    set(:deploying, true) 
    %w{ starting started 
     updating updated }.each do |task| 
    invoke "deploy:#{task}" 
    end 
end 

你可以看一下这里的代码:https://github.com/capistrano/capistrano/blob/master/lib/capistrano/tasks/framework.rake#L58看到什么部署触发器。并且每https://github.com/capistrano/capistrano/blob/master/lib/capistrano/tasks/deploy.rake#L38的发布任务将更改符号链接。因此,通过省略所有事后,您可以得到您要查找的内容。

相关问题