Blog

rails3, bundler 1.03 und capistrano 2.5.19

rails3, bundler 1.03 und capistrano 2.5.19

Heute habe ich an einem Rails3 Projekt weitergearbeitet, und bin schlussendlich sogar so weit gekommen, dass ich mal einen Probe-Deploy wagen konnte.

Hier war für mich sofort klar, dass ich Capistrano hernmehmen werde, und da ich vorher noch keine Rails3, sondern nur Rails 2.xx Anwendungen mit Capistrano deployed hatte, begab ich mich auf neues Terrain.

Meine deploy.rb hat am Ende so ausgesehen:

require 'bundler/capistrano'

set :application, "my-app"
set :repository, "ssh://my-username@domain/something/git/my-app.git"

set :scm, :git

set :deploy_to, "/var/www/my-path.com"

role :web, "my-ip"
role :app, "my-ip"
role :db, "my-ip", :primary => true

set :user, "my-user"

set :use_sudo, false
default_run_options[:pty] = true


namespace :deploy do
  set :bundle_gemfile, "Gemfile"
  set :bundle_dir,     "File.join(fetch(:shared_path), 'bundle')"
  set :bundle_flags,    ""
  set :bundle_without,  [:test]
  set :bundle_cmd,      "/opt/ruby-enterprise-1.8.7-2010.02/bin/bundle"

  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

task :copy_config do
  run "cp  #{deploy_to}/shared/config/database.yml #{release_path}/config/"
end

after "deploy:update_code", :copy_config

Mit dieser deploy.rb wird automatisch beim Aufruf von "cap deploy" der Code der Anwendung ganz normal auf den Server kopiert und die dazugehörigenden Gems aus dem Gemfile ins /my-path/releases/shared/bundle Verzeichnis hineinkopiert. So müssen die Gems nicht jedes mal komplett neu auf den Server kopiert werden.

Mit dem Befehl "require 'bundler/capistrano'" erledigt das Gem die meiste Arbeit sowieso schon von alleine.

28.12.2010
Matthias Frick
Ruby on Rails
1 Kommentar

Über den Autor

Matthias Frick
Matthias Frick, MSc.

Er ist ein langjähriger Ruby-on-Rails Entwickler und leitet das Unternehmen Frick-Web.

1 Kommentar zu "rails3, bundler 1.03 und capistrano 2.5.19"

  1. Tom
    Tom 25.08.2010
    Hallo Matthias, danke für dein Tutorial. Ich habe schon ewig nach einer guten Anleitung gesucht und endlich eine gefunden. Danke Lg Tom

Kommentar verfassen