2011-04-03 5 views
8

Bundler प्रलेखन कहते हैं, कि तैनाती के क्रम में सभी आवश्यक बंडलों स्थापित करने के लिए जब Capistrano के माध्यम से तैनाती, एक ही डालने की जरूरतरूबी ऑन रेल्स: Bundler और Capistrano: निर्दिष्ट करें कि कौन समूहों (विकास, परीक्षण) जब

बाहर रखा जाना कर रहे हैं
require 'bundler/capistrano' # siehe http://gembundler.com/deploying.html 
उसकी deploy.rb में

। फिर, तैनाती पर, Capistrano

* executing "bundle install --gemfile .../releases/20110403085518/Gemfile \ 
    --path .../shared/bundle --deployment --quiet --without development test" 

यह ठीक काम करता है।

हालांकि, हम अपनी उत्पादन सर्वर पर एक मचान सेटअप, वास्तविक लाइव साइट है, जहाँ हम (क्लोन और firewalled) लाइव उत्पादन डेटा के साथ एक नई एप्लिकेशन रिहाई का परीक्षण से अलग है। वहां, हमें स्थापित करने के लिए परीक्षण और विकास रत्न की आवश्यकता है।

मैं कैसे Capistrano कमांड लाइन यहाँ निर्दिष्ट करूँ? क्या ऐसे पैरामीटर हैं जिनका मैं उपयोग कर सकता हूं, या क्या मुझे बंडलर को ओवरराइट करने के लिए अपना खुद का कैपिस्ट्रानो कार्य स्थापित करने की आवश्यकता है?

धन्यवाद!

उत्तर

18

विभिन्न कार्यों लेखन निश्चित रूप से यह सरल रखने होगा:

task :production do 
    # These are default settings 
    set :bundle_without, [:development, :test] 
end 

task :staging do 
    set :bundle_without, [:test] 
    # set :rails_env, 'staging' 
end 

हालांकि, अगर आप आदेश पंक्ति विकल्प आपके द्वारा बताये गये मूल्य पर स्विच कर सकता उपयोग करना चाहते हैं:

cap deploy target=staging 

और अपने तैनाती के अंदर।

if target == "staging" 
    set :bundle_without, [:test] 
    # do other stuff here 
end 

वहाँ भी एक अधिक 'जनसंपर्क है: rb फ़ाइल आप के रूप में विकल्प मान इस्तेमाल कर सकते हैं ऑपरेशन 'कॉन्फ़िगरेशन ऑब्जेक्ट जिसे आप उपयोग कर सकते हैं। मैं इसे यहाँ के लिए एक संदर्भ मिल गया है: http://ryandaigle.com/articles/2007/6/22/using-command-line-parameters-w-rake-and-capistrano

+2

मैं एक Capistrano एक्सटेंशन 'बहुस्तरीय' कहा जाता है, जो अलग अलग लक्ष्य वातावरण होने के लिए के लिए अनुमति देता का उपयोग निर्दिष्ट (मेरे मामले में, स्टेजिंग और उत्पादन)। सेटिंग: bundle_without अभी मेरी समस्या को ठीक कर दिया गया है। धन्यवाद! – Jens

+0

एक साल पहले इस प्रश्न का उत्तर देने के बाद, अब मैं कैपिस्ट्रानो-मल्टीस्टेज एक्सटेंशन मणि का भी उपयोग करता हूं। – Scott

0

मैं एक सेटअप स्वतंत्र रूप से पुष्टि करने के लिए की जरूरत नहीं है, लेकिन RAILS_ENV = 'विकास' करता है इसे पाने के?

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