Capistrano: Bundler nicht rvm gemset

Habe ich einen Ruby on Rails 3.2-app mit bundler und capistrano für das deployment. Mein server ist ein Debian Squeeze mit rvm und ruby 1.9.2. Ich lese die rvm Sachen für capistrano (http://beginrescueend.com/integration/capistrano/) wo man einstellen kann das gemset von set :rvm_ruby_string, '1.9.2@my_gemset'.

Aber bei der Implementierung, bundler schreibt jeder Edelstein zu /var/www/my_app/shared/bundle. Ich dachte, wenn ich definieren rvm_ruby_string mit dem @ - Zeichen, bundler verwenden würde, das gemset.

Den Ausgang aus der Bereitstellung, sagt

  * executing "cd /var/www/my_app/releases/20120216145728 && bundle install --gemfile /var/www/my_app/releases/20120216145728/Gemfile --path /var/www/my_app/shared/bundle --deployment --quiet --without development test"

Wo ich ändern kann, die --path /var/www/... zu verwenden, die 1.9.2@my_gemset gemset von rvm?

Vielleicht sein, denn ich bin mit mehreren Umgebungen für die Bereitstellung (staging, Produktion...). So, hier ist mein bereitstellen.rb

# RVM bootstrap
$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
require 'capistrano/ext/multistage'
require 'bundler/capistrano'
require 'rvm/capistrano'

set :rvm_bin_path, "/usr/local/rvm/bin"
set :rvm_type, :system

set :stages, %w(production staging)
set :default_stage, "staging"

set :application, "my_app"
set :repository,  "[email protected]:my_app.git"

set :scm, :git

set :user, "my_deploy_user"

set :use_sudo, false

set :ssh_options, { :forward_agent => true }

default_run_options[:pty] = true

namespace :deploy do
  task :start do
  end
  task :stop do
  end
  task :restart, :roles => :app, :except => { :no_release => true } do
    run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
  end
end

Und in der config/deploy/Inszenierung.rb

set :rails_env, "staging"
set :rvm_ruby_string, '1.9.2@my_gemset'
set :deploy_to, "/var/www/my_app"

role :web, "stage.mydomain.de"                          # Your HTTP server, Apache/etc
role :app, "stage.mydomain.de"                          # This may be the same as your `Web` server
role :db,  "stage.mydomain.de", :primary => true # This is where Rails migrations will run

Vielleicht kann mir jemand helfen.

  • Ich sehe, dass Sie markiert die Antwort unten korrigieren. Was war Ihre Lösung mit dieser? Hast du nur shared/bundle eher als die rvm gemset?
InformationsquelleAutor 23tux | 2012-02-16
Schreibe einen Kommentar