سؤال

في 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 يأمر.

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