توضيحات حول نشر صورة Docker الخاصة بـ Discourse على AWS ECS

مرحباً،

لقد حاولت تشغيل صورة Docker الخاصة بـ Discourse على خدمة ECS (خدمة الحاويات في AWS) لأكثر من أسبوع، لذا اعتقدت أنه من الأفضل التواصل هنا للحصول على المشورة. عند تجربتها على خادم EC2 منفصل، يعمل Discourse بشكل صحيح. لقد قمت بإنشاء مثيل PostgreSQL RDS منفصل وعنقود ElastiCache لـ Redis لهذا الغرض.

لنشر التطبيق في ECS، قمت برفع الصورة المنشأة إلى سجل ECR. ثم أنشأت مهمة تقوم بسحب هذه الصورة. النتيجة المتوقعة هي أن يتم تشغيل حاوية Discourse (وهو ما يعمل على خادم EC2 المنفصل، حيث قمت أيضاً بإيقاف الحاوية العاملة هناك). ومع ذلك، أحصل فقط على أخطاء برمز الخروج 1.

لاحظت أيضاً أمر ./launcher start app، وهو يُخرج الكثير من “-e” وهي موجودة بالفعل في ملف app.yml. هل هناك أوامر “تشغيل” إضافية يجب تنفيذها على ECS؟

لقد قرأت هذا الرابط، لكن قد يكون هناك نقطة بسيطة أغفلتها: Can Discourse ship frequent Docker images that do not need to be bootstrapped?

شكراً لكم!

أولاً: هذه طريقة تثبيت غير مدعومة. في الغالب، إذا لم تكن تشغل تثبيت Docker قياسي، فأنت مسؤول عن الأمر وحدك.

ولكن مع ذلك، إليك ما أعتقد أنك تحتاج إلى معرفته:

يجب عليك تمرير جميع متغيرات البيئة (ENV) هذه إلى حاويات ECS الخاصة بك. يمكنك استخدام الأمر ./launcher start-cmd لجعله يطبع هذه المعلومات. يُستخدم ملف app.yml فقط لبناء الصورة. هذه المتغيرات ليست مدمجة داخل الحاوية. أنا متأكد تقريبًا من أنه إذا قمت بأي إجراء لتمرير متغيرات البيئة هذه إلى الحاوية الخاصة بك، فستعمل كما تريد.

لم أقم بتثبيت ECS من قبل، لكن يبدو أنني سأفعل ذلك قريبًا. سأكون سعيدًا بمعرفة ما إذا كان ذلك يعمل.

لقد سألت أيضًا عن نفس الشيء هنا: Aws deployed discourse is fetching assets from database url - #18 by trying2survive وحصلت على نفس الإجابة. :wink: