如何使用Capistrano 3部署而不是symlink / restart?

时间:2017-08-10 15:51:15

标签: ruby-on-rails capistrano capistrano3

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

那两个"更新"任务在Capistrano v3中消失了。是否有相同的方法在不更改current符号链接或重新启动服务器的情况下进行完全部署?

1 个答案:

答案 0 :(得分: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的发布任务是更改符号链接的内容。因此,通过以后省略所有内容,您就可以获得所需内容。