ruby-on-rails - 如何使用 Capistrano 3 部署而不是符号链接(symbolic link)/重新启动?

标签 ruby-on-rails capistrano capistrano3

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/

相关文章:

ruby-on-rails - 在 Capistrano 部署的应用程序中运行 Rails 控制台

ruby-on-rails-3 - --deployment 标志需要一个 Gemfile.lock

git - SSHKit::Runner::ExecuteError:在主机 Net::SSH::AuthenticationFailed 上执行时出现异常:身份验证失败

ruby-on-rails - 我应该如何为类数组编写方法?

ruby-on-rails - 我可以在 :all with capybara? 之前使用吗

ruby-on-rails - 每个循环 : show item once and sum quantity

ruby-on-rails - Rails Rspec - 只运行单个测试

ruby - Capistrano 3.0 — 现在如何安全地提示输入密码?

ruby - 部署.rb : undefined local variable or method `home` for main:Object

ruby-on-rails - Capistrano 3 钩子(Hook)之前和之后