كيف يمكنك الوصول إلى Rails_env من أمر نشر Cap؟
-
21-12-2019 - |
سؤال
في deploy.rb
, ، أعتقد أن :rails_env
يتم تعيينه عادةً بواسطة require 'capistrano/rails'
وجدت في الخاص بك Capfile
.أنا أستخدم القضبان، ولكن لا أستخدم مسار الأصول المدمج، وبالتالي، لا تستخدم الكابسترانو/القضبان وكنت في مأزق الاضطرار إلى الضبط يدويًا :rails_env
في deploy.rb
عند التبديل بين التدريج ونشر الإنتاج.بدا هذا سخيفًا إلى حد ما حيث يتم تضمين البيئة دائمًا عند التنفيذ cap staging deploy
أو cap production deploy
.أنا أنشر هذا السؤال، لأنه يبدو أنه قد يكون مشكلة شائعة إلى حد ما مع حل تافه، ولكن بعد الكثير من البحث على Google، خرجت خالي الوفاض.ولذلك حفرت في Capistrano 3.1.0
الكود المصدري لمعرفة كيفية الوصول إلى متغير المرحلة الذي تم إدخاله في سطر الأوامر وسيتبع ذلك بإجابة مختصرة تقدم القليل من الشرح.
المحلول
الجواب البسيط هو إضافة السطر التالي بالقرب من الجزء العلوي deploy.rb
:
المجموعة :rails_env، fetch(:stage)
المتغير :stage
يتم تعيينه capistrano/setup
الذي هو مطلوب في الخاص بك Capfile
.يقوم هذا البرنامج النصي بإنشاء مهام أشعل النار لكل مرحلة يتم تحديدها فيها config/deploy
.ستجد داخل تعريف مهمة أشعل النار ما يلي: set(:stage, stage.to_sym)
وهو المتغير Stage/rails_env من ملفك cap staging deploy
أو cap production deploy
يأمر.