Rails 3和Bundler。如何部署和不包装宝石

时间:2013-05-20 19:52:02

标签: ruby-on-rails ruby capistrano bundler

我尝试使用capistrano进行部署时遇到很多问题。我继续在任何来源中获取有关libv8的错误。

Could not find libv8-3.11.8.13 in any of the sources

此处https://github.com/cowboyd/libv8/issues/56告诉您,您可以“不使用包装”,这样,部署的应用程序将不会使用捆绑包。

如何部署和使用宝石不在捆绑包中?我希望应用程序每次部署时都运行bundle,或者只是在Gemfile更改时运行bundle。

2 个答案:

答案 0 :(得分:1)

这就是我的工作方式:https://github.com/cowboyd/libv8/issues/77#issuecomment-12711634

我正在使用mac进行开发并部署到红帽服务器。似乎Rails需要一个特定于操作系统,特定于平台的gem版本。所以当我在我的开发机器(mac)上运行bundle然后用capistrano将它部署到生产服务器(red hat)时,它将无法工作。

我最终做的是......

  • http://rubygems.org/gems/libv8
  • 手动下载我需要的libv8 gem
  • 将下载的gem复制到vendor / cache文件夹
  • 然后部署了应用程序(cap deploy:cold)

并且有效。

答案 1 :(得分:0)

如果我理解你的问题,听起来好像你错过了捆绑capistrano任务。有关详情,请参阅https://github.com/carlhuda/bundler/blob/master/lib/bundler/capistrano.rb。您应该能够对capistrano deploy.rb文件“require'bundler / capistrano'”,以便在每次部署时运行bundle。