Capistrano v2 有两个有用的任务:cap deploy:update_code
将对新的 releases/
进行全面部署目录,但不更改 current
符号链接(symbolic link)或启动/重新启动服务器(因此服务器继续运行当前版本而不会中断)。和cap deploy:update
做了同样的事情加上改变current
符号链接(symbolic link),但没有启动/重新启动服务器。这些对于摆脱问题很有用,例如在进行实际部署之前进行 Assets 编译。
这两个“更新”任务在 Capistrano v3 中消失了。有没有一种等效的方法可以在不更改 current
的情况下进行完整部署?符号链接(symbolic link)或重新启动服务器?
最佳答案
一个自定义任务列表应该这样做:
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 的发布任务是什么改变了符号链接(symbolic link)。因此,通过省略之后的所有内容,您将获得所需的内容。
关于ruby-on-rails - 如何使用 Capistrano 3 部署而不是符号链接(symbolic link)/重新启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45618294/