نظام التدريج على هيروكو
-
16-09-2019 - |
سؤال
أود أن أكون قادرا على دفع الكود إلى 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
(يرى إدارة بيئات متعددة للحصول على تطبيق | مركز هيروكو ديف لمزيد من المعلومات والاختصارات.)