【问题标题】:Define Bundle Path With Capistrano使用 Capistrano 定义捆绑路径
【发布时间】:2012-09-28 14:19:26
【问题描述】:

我在我的 deploy.rb 文件中为 capistrano 使用以下配置:

require 'bundler/capistrano'
require 'rvm/capistrano'

set :bundle_cmd, "/home/deployment/.rvm/gems/ruby-1.9.3-p194@global/bin/bundle"

set :default_environment, {
    'PATH' => "/home/deployment/.rvm/gems/ruby-1.9.3-p194/bin:/home/deployment/.rvm/bin:$PATH",
    'RUBY_VERSION' => 'ruby 1.9.3',
    'GEM_HOME' => "/home/deployment/.rvm/gems/ruby-1.9.3-p194",
    'GEM_PATH' => "/home/deployment/.rvm/gems/ruby-1.9.3-p194",
    'BUNDLE_PATH' => "/home/deployment/.rvm/gems/ruby-1.9.3-p194"
}

但是当我运行 cap deploy:update 时,我得到了这个:

* executing "cd /var/www/currienet/marketplace/releases/20120928140140 && /home/deployment/.rvm/gems/ruby-1.9.3-p194@global/bin/bundle install --gemfile /var/www/currienet/marketplace/releases/20120928140140/Gemfile --path /var/www/currienet/marketplace/shared/bundle --deployment --quiet --without development test"

也就是说,它没有将捆绑路径(--path 参数)设置为我想要的。

我尝试了许多教程,包括rvm capistrano tutorial,但似乎没有任何效果。它继续使用 capistrano 默认值。

Capistrano 还使用以下 .bundler/config 创建应用程序

BUNDLE_FROZEN: '1'
BUNDLE_PATH: /var/www/currienet/marketplace/shared/bundle
BUNDLE_DISABLE_SHARED_GEMS: '1'
BUNDLE_WITHOUT: development:test

开发机器:Windows 7、bundler (1.0.22)、capistrano (2.12.0)、rvm-capistrano (1.2.7)、rails (3.2.8)、(无 rvm)

生产:Debian、bundler (1.2.1)(无 capistrano)、(无 rvm-capistrano)、rails (3.2.8)、rvm 1.16.5

【问题讨论】:

    标签: rvm capistrano bundler


    【解决方案1】:

    感谢Joseph Holsten's blog,我能够确定我的问题是在我需要“bundler/capistrano”之前,我没有在 deploy.rb 中定义捆绑器变量。我还需要定义 bundle_dir 变量,以创建如下所示的代码:

    set :bundle_cmd, "/home/deployment/.rvm/gems/ruby-1.9.3-p194@global/bin/bundle"
    set :bundle_dir, "/home/deployment/.rvm/gems/ruby-1.9.3-p194"
    
    require 'bundler/capistrano'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-10
      • 2012-01-04
      • 2016-07-09
      • 1970-01-01
      • 2011-03-30
      • 2011-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多