هل صورة Docker discourse/discourse آمنة وجاهزة للإنتاج؟

مرحبًا!
سجّلتُ حسابي فقط لأشكر الجميع على مساعدتكم، وخاصةً @featheredtoast.
كاد أن يعمل الأمر، لكن إرسال البريد الإلكتروني لم يكن يعمل.
أظن أن السبب هو أنني أستخدم Caddy كوكيل عكسي.

لذا عدتُ الآن لاستخدام Discourse بشكل منفصل عن جميع الخدمات الأخرى في إعداد Docker Compose الخاص بي.

هل تعرفون كيف يمكنني جعل الأمر يعمل مع Caddy؟ أظن أنني بحاجة إلى استخدام مثال يعتمد على Socket، لكنني لا أعرف كيفية تعديل ملف app.yml داخل إعداد Discourse في Docker Compose.

كل التوفيق لكم - Y

ما لم تكن تقوم عن طريق ما ما يضمن Caddy توجيه بريدك الصادر، فلا أعتقد أن الأمر متعلق بذلك.

لا يلزمك جعله يعتمد على مقبس؛ يمكنك ببساطة الإشارة إلى اسم Docker و/أو عنوان IP. تناقش هذه الصفحة Discourse working with jwilder /nginx proxy & acme-companion - #7 by Steve_Emerson استخدام قالب يعتمد على مقبس بالإضافة إلى مجموعة أخرى من الأمور.

إذن، الإجابة المختصرة هي: لا، ليس عبر docker-compose بمفرده — فهذا شيء أود رؤيته، لكن الخطة هنا هي السماح لأي شخص بإنشاء صورة أساسية مخصصة يمكن مشاركتها علنًا لدفع عجلة التقدم. يتضمن بناء الإضافة نسخ الإضافة، وتشغيل bundle install، وnpm، وإعادة تجميع ember… ولا ينبغي القيام بذلك عند التشغيل.

لذا فإن جزءًا من الفكرة هنا هو السماح للصور بالبناء تمامًا كما تُبنى صورة discourse/discourse — باستخدام نفس ملف app.yml الذي تعمل به إصدارات Discourse المدعومة.

كعينة، أقوم ببناء صورتي الشخصية مع resenha عن طريق تحديث ملف app.yml الأساسي ليشمل الإضافة هنا، ثم رفعها إلى سجل Docker خارجي (عام!).

إذا كنت تستخدم خدمة بريد خارجية، فلا أعتقد أن عكس الوكيل Caddy الخاص بك هو على الأرجح المشكلة. على عكس عمليات البناء الحالية للـ launcher، لن تطلب منك صورة discourse/discourse إعداد متغيرات البيئة الخاصة بالبريد الإلكتروني (لكن لا يزال من الضروري القيام بذلك) — لذا أنصحك بالتحقق منها أولاً.

تمكّنت من تغيير حد حجم التحميل:

cat fix-upload-size.sh (والذي يجب أن يكون chmod +x):

#!/bin/sh
sed -i 's/client_max_body_size .*;/client_max_body_size 500m;/' /etc/nginx/conf.d/discourse.conf

في ملف docker-compose.yml:

    volumes:
     - ./fix-upload-size.sh:/etc/runit/1.d/fix-upload-size

تمكّنت من بناء صورة باستخدام إصدار ESR فقط. فعند استخدام إصدار أحدث من ذلك، تتطلب عملية البناء قاعدة بيانات ونسخة من Redis. هل هذا مقصود؟

هل توجد طريقة لترقية Discourse إلى أحدث إصدار عند استخدام هذه الصورة؟

أستخدمها في منتدى مجموعة البحث التابعة لكلية، وأرغب في التحديث إلى أحدث إصدار من Discourse، لكن الصورة لم يتم تحديثها منذ مارس. ما هي الطريقة الموصى بها للترقية؟

كان ذلك تأثيرًا جانبيًا غير مقصود لإضافة استدعاء لمسح ترقيات الويب العالقة؛ أنا أعمل على حل هذه المشكلة قريبًا عبر FIX: run clear_stuck_web_upgrades during precompile stage · Pull Request #1055 · discourse/discourse_docker

رائع، شكرًا لك!

لكن لدي سؤال آخر، فأنا أستخدم Azure للطلاب وأستخدم Container Apps. إذا قمت بترقية ما بداخل التطبيق بطريقة ما، فأنا أخشى أنه إذا تعطلت مثيلة Discourse التي تعمل لسبب ما، فقد يؤدي ذلك إلى فوضى في منتدانا، لأنه عند إعادة التشغيل، من المرجح أن يعود إلى إصدار سابق.

مرة أخرى، شكرًا لك!

هذا خطر - للأسف لا توجد طريقة جيدة لتجنب ذلك سوى التأكد من أن الصورة محدثة إذا كنت تقوم بالترقية في التطبيق و التحديث عن طريق سحب الصور من مستودع Docker. لا أنصح بذلك حقًا.

في غضون ذلك، ما زلت أعمل على ترتيب مستودع Docker (هناك مشكلة أخرى يجب معالجتها هنا).