2011-10-02 17 views
20

मैं कैपिस्ट्रानो, बंडलर और आरवीएम के साथ एक वीपीएस में रेल ऐप तैनात कर रहा हूं। यहाँ मेरी deploy.rb का हिस्सा हैआरवीएम जेम्ससेट - उत्पादन में बंडलर और कैपिस्ट्रानो

$:.unshift(File.expand_path('./lib', ENV['rvm_path'])) 
require "rvm/capistrano"  
require "bundler/capistrano"    # Load RVM's capistrano plugin. 

set :rvm_type, :system 
set :rvm_ruby_string, '[email protected]_name' 

मेरी .rvmrc

rvm --create use [email protected]_name 

जब मैं सर्वर मैंने देखा है कि rvm gemset बनाया गया था में लॉग इन किया, लेकिन सभी जवाहरात में स्थापित किए गए थे/साझा /bundle/ruby/1.9.1/gems - रत्न में नहीं है (/ usr/local/rvm/gemset)

मैं विकास में आरवीएम का उपयोग करता हूं और मुझे लगता है कि यह बहुत अच्छा है लेकिन उत्पादन के लिए समय कब है। सर्वोत्तम प्रथाएं क्या हैं? क्या रत्न में रत्न स्थापित करने के लिए बंडलर को बताने का कोई तरीका है?

क्या मुझे भी एक रत्न की आवश्यकता है? (ऐसा लगता है जैसे बंडलर पहले ही रत्नों को अलग कर रहा है), क्या मुझे कुछ याद आ रहा है?

कृपया मुझे समझने में मदद करें!

आपको बहुत धन्यवाद

उत्तर

17

मैं विकास और उत्पादन में भी आरवीएम का उपयोग करता हूं। हालांकि, जब मैं अपने रेल परियोजनाओं के बीच रत्नों को अलग करने के लिए विकास में रत्नों का उपयोग करता हूं, तो मैं केवल अपने उत्पादन वीपीएस पर रूबी स्थापित करने के लिए आरवीएम का उपयोग करता हूं और बंडलर को अपने रत्नों के संस्करणों को संभालने देता हूं।

require "bundler/capistrano" के माध्यम से बंडलर एकीकरण का उपयोग स्वचालित रूप से कुछ चीजों को बंडलर के लिए सेट करता है। आप Bundlers Github page में इसके पीछे कोड देख सकते हैं।

bundle install --gemfile Gemfile --path shared/bundle --deployment --quiet --without development test 

आप देख सकते हैं, --deployment और --path झंडे दिया जाता है, जो बताता है Bundler shared/bundle निर्देशिका में अपने आवेदन के साथ अपने जवाहरात बंडल करने, और केवल का उपयोग करें: मूलभूत सेटिंग ताकि बंडल इस आदेश निष्पादित करता हैं आपके Gemfile.lock में निर्दिष्ट संस्करण (यानी संस्करण जो विकास में काम कर रहे हैं)। चूंकि बंडल निर्देशिका को तैनाती के बीच साझा किया जाता है, इसलिए मुझे लगता है कि यह प्रत्येक एप्लिकेशन के लिए आरवीएम जेमेट्स का उपयोग करने के लिए तुलनीय है, बस इतना आसान है।

आप this tutorial में इस सेटअप पर कुछ अतिरिक्त जानकारी पा सकते हैं। यदि आप अभी भी अलग-अलग रत्नों में रत्न डालना चाहते हैं तो मैं आगे पढ़ने के लिए this tutorial from Darcy Laycock की अनुशंसा करता हूं।

+1

जानकारी के लिए धन्यवाद! मैं बंडलर को अपनी परियोजनाओं में से प्रत्येक के लिए रत्नों को संभालने दे रहा हूं और यह अब तक बहुत अच्छा काम कर रहा है। विकास में आरएमवी पर – Jazmin

+0

+1, उत्पादन में बंडलर। मैं एक मेजबान पर एकाधिक रूबी ऐप्स चलाने के लिए इस विधि का उपयोग कर रहा हूं, अभी तक कोई समस्या नहीं है। – Soup

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