2012-08-17 17 views
6

Bir Ruby On Rails uygulamasını hem sahneye hem de Capistrano kullanarak prodüksiyona dağıtmaya çalışıyorum. domain ve: Burada bu kılavuzu takipCapistrano hazırlama ve üretime dağıtıyor

depo:

ikisi arasındaki tek fark ben net etrafında aradık https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension

ve ben bulmak hepsi temelde Rehash makaleleri ne Yukarıda var.

Sadece ayarlama denedim: Etki alanı ve yer: depo config/dağıtmak/staging.rb ve config/dağıtmak/production.rb Eminim alt dizinleri yazıldığından yapmak benim yazımlar kontrol ettiniz

doğru ve dosyaların isimleri.

Bu makaleyi okuyun: staging and live app with capistrano Sadece burada farklılıkları açıklayabilmem gerekir.

Staging.rb dosyası aslında okunmakta gibi görünmüyor. "Deploy.rb" yi ilk satır olarak tek bir küfür kelimesine sahip olmak için değiştirdim, "kapak dağıtımı" bana beklenen hatayı veriyor.

`method_missing': undefined local variable or method `domain' 

söz konusu çizgidir:

role :web, domain 

Bir tek "staging.rb" veya "production.rb" Ben aynı hatayı alıyorum ilk satırında küfür koyarsanız

, çünkü değer alınmıyor. Ama kesinlikle staging.rb veya production.rb tek yeminli kelime üzerinde başarısız olmalı ve hiç çalışmaz?

: "Etki alanı ve" deposunu ana "deploy.rb" dosyasına geri taşırsam hatayı küfür kelimesiyle alırım. Yani "staging.rg" ve "production.rb" dosyalarındaki değişkenleri ayarlayamıyorum, ancak sadece görevleri tamamlamam gibi görünüyor.

Herhangi bir yardım çok takdir ya da sadece pizza dağıtım işini almalı sizce olurdu ...

deploy.rb:

require 'capistrano/ext/multistage' 
set :stages, %w(production staging) 
set :default_stage, "staging" 

set :user, 'dave' 

set :applicationdir, "~/rails/example.com" 

set :scm, 'git' 

set :git_enable_submodules, 1 # if you have vendored rails 
set :branch, 'master' 
set :git_shallow_clone, 1 
set :scm_verbose, true 

set :keep_releases, 5 
after "deploy:update", "deploy:cleanup" 

# roles (servers) 
role :web, domain 
role :app, domain 
role :db, domain, :primary => true 

after "deploy", "deploy:migrate" 

# deploy config 
set :deploy_to, applicationdir 
set :deploy_via, :export 
# set :rake, 'bundle exec rake' 

# additional settings 
default_run_options[:pty] = true # Forgo errors when deploying from windows 
set :ssh_options, {:forward_agent => true} 
#ssh_options[:keys] = %w(/home/user/.ssh/id_rsa)   # If you are using ssh_keysset :chmod755, "app config db lib public vendor script script/* public/disp*"set :use_sudo, false 


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

Ve config/dağıtmak/staging.rb dosya : ana "deploy.rb" hepsi ince ve züppe eserlerinde yer deposu: domain ve:

set :domain, 'example.com' 
set :repository, "ssh://[email protected]/~/rails/chamonix-mont-blanc.net" 

ben koyarsam. Böylece

set :domain, 'example.com' 

role :web, domain 
role :app, domain 
role :db, domain, :primary => true 

set :repository, "ssh://[email protected]/~/rails/chamonix-mont-blanc.net" 

deploy.rb gelen roller kodu kaldırın sevdiği staging.rb dosyaya

cevap

5

Taşı roles görünüyor. Ayrıca, production.rb'unuzu benzer şekilde değiştirmeniz gerekecektir.

+7

Spot on. Çok teşekkür ederim!! Hepsi çalışıyor. İşlerini istemediğim pizza dağıtım firmasına anlatacağım! –

İlgili konular