سؤال

أود أن أكون قادرا على دفع الكود إلى dev.myapp.com لاختبار ثم ل www.myapp.com لاستخدام الإنتاج. هل هذا ممكن مع هيروكو؟

هل كانت مفيدة؟

المحلول

واجهة الخاص بك إلى heroku هو أساسا فرع git. يقوم جوهرة Heroku ببعض العمل من خلال واجهة برمجة التطبيقات الخاصة بهم، ولكن ضمن مستودع GIT الخاص بك، إنه مجرد فرع بعيد عن بعد.

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

بمجرد إعداد تطبيقات متعددة على Heroku، يجب أن تكون قادرا على تكوين مستودع GIT الخاص بك مثل هذا:

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

عادة ما أعمل في فرع "العمل"، واستخدم Github لسيدتي.

على افتراض أن هذا هو الحال بالنسبة لك، من المحتمل أن ينظر سير العمل في نشر شيء مثل:

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

نصائح أخرى

هذا يفسر كل ما تحتاج لمعرفته إذا كنت مبتدئ مثلي: http://devcenter.heroku.com/articles/multiple-environments.

جزء أساسي من السؤال الأصلي يدور حول ربط تطبيق التدريج إلى المجال الفرعي (dev.myapp.com) للتطبيق الرئيسي (www.myapp.com). لم يتم تناول هذا في أي من الإجابات.

الخطوة 1: تكوين كلا الإنتاج ("MyApp") وتدريج ("التدريجي") إصدارات تطبيقك كما هو مبين في إجابة لوقا بايس

الخطوة 2: في نظام إدارة المجال الخاص بك (مثل GoDaddy):

Create a CNAME record:  dev.myapp.com 
that points to:   proxy.heroku.com

الخطوة 3: تكوين Heroku لتوجيه dev.myapp.com إلى MyApp:

heroku domains:add dev.myapp.com --app staging-myapp

بعد سجل CNAME كان لديه وقت للنشر، ستتمكن من تشغيل تطبيق التدرج الخاص بك في dev.myapp.com.

يجب عليك التحقق من Heroku_san.

إنه يقوم بعمل جيد جدا شعوذة مع البيئات على هيروكو.

الأمور أسهل الآن. إليك كيف تفعل ذلك ...

إنشاء تطبيق لكل بيئة

$ heroku create myapp --remote production
$ heroku create myapp-staging --remote staging

سيؤدي هذا إلى إنشاء Repos المسمى عن بعد لكل تطبيق، والذي يمكنك رؤيته فيه .git/config.

يمكنك الآن استخدام إما --تطبيق أو --التحكم عن بعد المفاتيح لاستهداف تطبيق معين:

$ 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

هذا ألم ضخم على الرغم من أنني مجرد استخدام بلدي snappconfig. جوهرة ويدير

$ rake heroku:config:load[myapp-staging]

لتحميل ملفات التكوين YAML للمشروع في Heroku.

نشر

الآن أنت فقط دفع إلى هيروكو مثل هذا:

$ git push staging master
$ git push production master

وترحيل مثل هذا:

$ heroku run rake db:migrate --remote staging
$ heroku run rake db:migrate --remote production

(يرى إدارة بيئات متعددة للحصول على تطبيق | مركز هيروكو ديف لمزيد من المعلومات والاختصارات.)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top