2012-08-17 12 views
6

पर तैनात है, मैं दोनों रूजिंग और फिर कैपिस्ट्रानो का उपयोग करके उत्पादन के लिए रूबी ऑन रेल ऐप को तैनात करने की कोशिश कर रहा हूं। डोमेन और: भंडारकैपिस्ट्रानो स्टेजिंग और उत्पादन

मैं इस गाइड यहाँ का पालन किया है:

दोनों के बीच फर्क सिर्फ इतना है https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension

मैं नेट के आसपास खोज की है और सभी मुझे लगता है लेख है कि मूल रूप से मिश्रित कर रहे हैं क्या मेरे ऊपर है

मैं सिर्फ स्थापित करने की कोशिश की है: डोमेन और: में भंडार config/तैनाती/staging.rb और config/तैनाती/production.rb

मुझे यकीन है कि मैं वर्तनी उप dirs बनाने के लिए मेरी वर्तनी जाँच कर ली है सही ढंग से और फ़ाइलों के नाम।

इस लेख को पढ़ना: staging and live app with capistrano ऐसा लगता है कि मुझे यहां अंतरों को घोषित करने में सक्षम होना चाहिए।

ऐसा लगता है कि staging.rb फ़ाइल वास्तव में पढ़ा जा रहा है। मैंने अपनी "deploy.rb" को पहली पंक्ति के रूप में एक कसम खाता है, "टोपी तैनाती" मुझे अपेक्षित त्रुटि देता है।

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

प्रश्न में लाइन है:

role :web, domain 

अगर मैं एक एकल "staging.rb" या "production.rb" मैं एक ही त्रुटि मिलती है की पहली पंक्ति पर शब्द कसम डाल

क्योंकि मूल्य उठाया नहीं जा रहा है। लेकिन निश्चित रूप से यह staging.rb या production.rb में एकल कसम शब्द पर असफल होना चाहिए और बिल्कुल नहीं चलना चाहिए?

यदि मैं डोमेन और: भंडार को मुख्य "deploy.rb" फ़ाइल में वापस ले जाता हूं तो मुझे कसम खाता के साथ त्रुटि मिलती है। तो ऐसा लगता है कि मैं "staging.rg" और "production.rb" फ़ाइलों में चर सेट नहीं कर सकता लेकिन केवल कार्य पूर्ण करता हूं।

किसी भी मदद की बहुत सराहना या आपको लगता है मैं सिर्फ पिज्जा डिलीवरी काम लेना चाहिए कर किया जाएगा ...

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 

और मेरे config/तैनात/staging.rb फ़ाइल : मुख्य "deploy.rb" यह सब ठीक है और बांका काम करता है में भंडार: डोमेन और:

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

अगर मैं डाल दिया।

उत्तर

5

ले जाएँ roles अपने staging.rb फाइल करने के लिए इतना है कि ऐसा लगता है कि

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 से भूमिकाओं कोड निकालें। साथ ही, आपको अपने production.rb को समान रूप से संशोधित करना होगा।

+7

स्पॉट ऑन। आपका बहुत बहुत धन्यवाद!! सब काम कर रहे हैं। मैं पिज्जा डिलीवरी फर्म को बताउंगा कि मैं उनका काम नहीं चाहता !! –

संबंधित मुद्दे