मैं कोड को dev.myapp.com
परीक्षण के लिए और फिर www.myapp.com
उत्पादन उपयोग के लिए पुश करने में सक्षम होना चाहता हूं । क्या यह हेरोकू के साथ संभव है?
मैं कोड को dev.myapp.com
परीक्षण के लिए और फिर www.myapp.com
उत्पादन उपयोग के लिए पुश करने में सक्षम होना चाहता हूं । क्या यह हेरोकू के साथ संभव है?
जवाबों:
हरोकू के लिए आपका इंटरफ़ेस अनिवार्य रूप से एक गिट शाखा है। हेरोकू रत्न अपने एपीआई के माध्यम से कुछ काम करता है, लेकिन आपके गिट रिपॉजिटरी के भीतर, यह सिर्फ एक नई दूरस्थ शाखा है।
heroku create yourapp # production
git br -D heroku # delete the default branch
heroku create staging-yourapp # staging
git br -D heroku # delete the default branch
एक बार जब आप हरोकू पर कई एप्लिकेशन सेट करते हैं, तो आपको अपने गिट रिपॉजिटरी को इस तरह कॉन्फ़िगर करने में सक्षम होना चाहिए:
git remote add staging git@heroku.com:staging-yourapp.git
git push origin staging
git remote add production git@heroku.com:yourapp.git
git push origin production
मैं आमतौर पर 'वर्किंग' ब्रांच में काम करता हूं, और अपने गुरु के लिए जीथब का इस्तेमाल करता हूं।
यह मानते हुए कि आपके लिए मामला, आपके तैनात वर्कफ़्लो शायद कुछ इस तरह दिखाई देंगे:
git co -b working
# do some work
# push to github:
git co master
git merge working
git push
# push to staging:
git co staging
git merge master
git push origin staging
# push to production
git co production
git merge master
git push origin production
heroku create yourapp --remote your-remote
heroku
आदेशों को शामिल करने --app staging
या करने की आवश्यकता होती है --app production
। क्या कोई डिफ़ॉल्ट सेट करने का कोई तरीका है? (एक टिप्पणी के रूप में पूछें b / c यह भी एक पूर्ण SO SO प्रश्न होने के लिए लक्षित है।)
यह सब कुछ आप को पता है की जरूरत है अगर आप की तरह एक नौसिखिया बताते हैं: http://devcenter.heroku.com/articles/multiple-p एन्वायरमेंट
मूल प्रश्न का एक मुख्य भाग मुख्य ऐप (www.myapp.com) के स्टेजिंग ऐप को एक उपडोमेन (dev.myapp.com) से जोड़ने के बारे में है। यह किसी भी उत्तर में संबोधित नहीं किया गया है।
चरण 1: ल्यूक बेयस के उत्तर में इंगित किए गए दोनों उत्पादन ('myapp') और आपके ऐप के स्टेजिंग ('स्टेजिंग-मैप्प') को कॉन्फ़िगर करें
चरण 2: अपने डोमेन प्रबंधन प्रणाली में (जैसे GoDaddy):
Create a CNAME record: dev.myapp.com
that points to: proxy.heroku.com
चरण 3: हेरोकू को स्टेजिंग- myapp पर dev.myapp.com पर कॉन्फ़िगर करें:
heroku domains:add dev.myapp.com --app staging-myapp
CNAME रिकॉर्ड को प्रचारित करने का समय होने के बाद, आप dev.myapp.com पर अपना स्टेजिंग ऐप चला सकेंगे।
before_filter
लिए एक हुक जोड़ना समाप्त कर दिया application_controller
, फिर एक व्यवस्थापक कुकी सेट करें ताकि मैं अभी भी 'गैर-व्यवस्थापक' के दृष्टिकोण से ऐप देख सकूं। मेरे लिए बहुत अच्छा काम कर रहा है।
आपको heroku_san की जांच करनी चाहिए
यह हरोकू पर वातावरण के साथ बहुत अच्छा काम करता है।
हालात अब आसान हैं। यहाँ आप इसे कैसे करते हैं ...
$ heroku create myapp --remote production
$ heroku create myapp-staging --remote staging
यह प्रत्येक ऐप के लिए रिमोट रिपॉजिट बनाएगा, जिसे आप देख सकते हैं .git/config
।
अब आप किसी विशेष ऐप को लक्षित करने के लिए या तो --app या --remote स्विच का उपयोग कर सकते हैं :
$ heroku info --app myapp-staging
$ heroku info --remote staging
रेल एप्लिकेशन के लिए, हरोकू "उत्पादन" वातावरण में चूकता है । आप अपने मचान अनुप्रयोग एक स्टेजिंग वातावरण में चलाना चाहते हैं, माहौल बनाने अपनी परियोजना में और इसी सेट RAILS_ENV और RAKE_ENV एप्लिकेशन पर वातावरण चर:
$ heroku config:set RACK_ENV=staging RAILS_ENV=staging --remote staging
यदि आपके पास अन्य कॉन्फ़िगरेशन चर हैं, तो आपको उन्हें प्रत्येक वातावरण के लिए भी पास करना होगा।
$ heroku config:set AWS_KEY=abc --remote staging
$ heroku config:set AWD_SECRET=123 --remote staging
...etc
यह एक बहुत बड़ा दर्द है, इसलिए मैं सिर्फ अपने स्नैप्पकॉफ मणि का उपयोग करता हूं और चलाता हूं
$ rake heroku:config:load[myapp-staging]
लोड करने के लिए हरोकू में मेरी परियोजना के YAML विन्यास फाइल को लोड करें।
अब आप बस इस तरह से हरखू को धक्का देते हैं:
$ git push staging master
$ git push production master
और इस तरह माइग्रेट करें:
$ heroku run rake db:migrate --remote staging
$ heroku run rake db:migrate --remote production
( एक ऐप के लिए कई वातावरण का प्रबंधन देखें । अधिक जानकारी और शॉर्टकट के लिए हरोकू देव केंद्र ।)
RAILS_ENV
और RACK_ENV
उसे staging
हतोत्साहित करना : "यह एक और कस्टम वातावरण बनाने का प्रलोभन दे सकता है जैसे" स्टेजिंग "और एक कॉन्फिग / एन्वायरमेंट / स्टैगेजिंग। आरबी और Roku_ENV = स्टेजिंग के साथ एक हरोकू ऐप पर तैनात करना। यह एक अच्छा अभ्यास नहीं है। इसके बजाय, हम हमेशा उत्पादन मोड में चलने की सलाह देते हैं और आपके कॉन्फिग वर्जन को सेट करके किसी भी व्यवहार को संशोधित करते हैं। " इस पर यहाँ अधिक: devcenter.heroku.com/articles/…
git push staging edge work
?