【问题标题】:Deploying process is too slow using Capistrano, hang in precompile使用 Capistrano 部署过程太慢,挂在预编译中
【发布时间】:2020-10-18 17:51:18
【问题描述】:

环境: Ruby 2.6.3 / Rails 6.0 / Capistrano 3.14.1

问题: cap production deploy 很慢,差不多 10 分钟。日志显示$HOME/.rbenv/bin/rbenv exec bundle exec rake assets:precompile 大约需要 8 分钟。我使用相同的命令并在本地运行它,它非常快。那么问题是什么以及如何解决它。

【问题讨论】:

  • 听起来你的开发机器比你的服务器更快/拥有更多的 RAM/CPU 内核。
  • 我也遇到过这种情况……最后在服务器上增加了很多内存,解决了这个问题。也可以在您的开发机器上预编译并发布预编译的 js 包。我还没有看到任何关于这样做的利弊的讨论。这也意味着您不需要在服务器上安装 nodejs。

标签: ruby-on-rails ruby deployment capistrano


【解决方案1】:

问题是服务器性能限制&如果有人感兴趣,解决方案是https://github.com/stve/capistrano-local-precompile。它对我来说效果很好,可以将时间缩短到约 20 秒。

【讨论】:

  • 这是一个很好的解决方案@Sefier Tang。但我很好奇为什么你从你的开发机器上同步编译后的资产,而不是在仓库中发布编译后的资产和发布的代码?使用 rsync 方法,您从 repo 中提取 rails 代码,但直接从您的开发机器中提取资产代码,但它们很容易成为不同的 git 版本,不是吗?也许我错过了什么?
猜你喜欢
  • 2013-11-04
  • 2013-12-07
  • 2014-02-05
  • 2013-04-29
  • 1970-01-01
  • 1970-01-01
  • 2012-02-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多