如何使用 Capistrano 3 部署但不进行符号链接/重新启动?



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

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

自定义任务列表 这应该可以做到:

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 的发布任务是更改符号链接的原因。因此,通过省略之后的所有内容,您可以得到所需的内容。

最新更新