للويب فقط - هل أحتاج صورة منفصلة لكل حاوية؟

مرحباً يا رفاق.

شيء تافه اعتقدته ولكني فشلت في العثور على إجابة واضحة، وبالتالي أسأل هنا.

مع حاويات الويب فقط - كيف يمكن إنشاء واستخدام صورة واحدة تشاركها هذه الحاويات؟

هذا بالتأكيد منطقي - مثل هذه الحاوية “الرقيقة” للخطاب مع كل شيء بالخارج (خاصة بميزانية رجل فقير على أجهزة افتراضية صغيرة) كل منها له صورته الخاصة بالدوكر… لا معنى له في ذهني، صحيح؟

آمل أن أكون قد فاتني بعض الوثائق/كيفية “واضحة” لمثل هذا السيناريو البسيط (والمشترك/الشائع؟)؟
شكراً جزيلاً.

نعم، يمكنك استخدام قاعدة بيانات بوستجريس (postgres) واحدة لعدة مواقع ديسكورس (Discourse)، ولكن ما لم تكن ستستخدم التكوين متعدد المواقع (انظر Multisite configuration with Docker)، فإن كل موقع يحتاج إلى قاعدة بيانات ريديس (redis) خاصة به.\n\nستحتاج إلى إنشاء قاعدة بيانات أخرى، وتكوين حاوية الويب الثانية لاستخدامها بدلاً من تلك المسماة ديسكورس (Discourse).

إعجاب واحد (1)

شكراً لوقتك، لمحاولتك، ولكن.. هذا ليس ما أطلبه.
سأحاول مرة أخرى، اعذرني إذا فشلت.. مرة أخرى
عندما أقوم بـ:

  • $ ./launcher bootstrap a.forum.xyz # أو ما شابه
    ثم يقوم المعالج بإنشاء:
- $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
local_discourse/a.forum.xyz latest d7a7b6509811 2 hours ago 4.19GB

وهذا يحدث مع كل مشغل يتم تشغيله لمنتدى مختلف/جديد.
لذا أنتهي بصور متعددة لنفس discourse - هل هذا يحدث معي فقط & يجب أن تكون النتيجة مختلفة؟
إذا لم يكن معي فقط & هذه هي النتيجة المرغوبة & المتوقعة، فهذا - بالتأكيد لست مطورًا وليس لدي معرفة بالعملية (العمليات) المعنية - بل هو إهدار شديد حقًا (ربما بشكل خاص مع حاوية web-only) - أليس كذلك؟

ما كنت آمله - عندما جربت discourse لأول مرة - ما كنت أتوقعه هو، إلى حد كبير ما تفعله كل البرامج الأخرى التي تم تغليفها في docker، وهو: الحصول على تلك الصورة الواحدة وتشغيل العديد من الحاويات منها. هل discourse غير قادر على فعل ذلك؟

إذا كنت ترغب في استخدام نفس الحاوية بإعدادات مختلفة لمواقع مختلفة، يمكنك استخدام

./launcher start-cmd

للحصول على المعلمات لبدء تشغيلها. يمكنك تغييرها للمواقع الأخرى التي ترغب في تشغيلها. ستحتاج إلى قاعدة بيانات و Redis لكل منها.

إعجابَين (2)

إنه يحتوي على نسخ فريدة من سمات مواقعك، والتي تشمل JS و CSS وأنواعًا أخرى من الأصول.

وأيضًا التركيبة الفريدة من الإضافات الخاصة بك وتبعياتها.

إنها قصة طويلة، لكن Discourse ومعظم الأدوات سبقت أشياء مثل Docker compose.

نحن نقدم حاوية ضخمة تحتوي على كل شيء، وهناك العديد من المقايضات لذلك. كواحد منها، تسمح الحاوية ذات الحالة بميزات مثل تحديثنا بنقرة واحدة عبر الويب.

بالنظر إلى نهج أكثر حداثة لكيفية نشر الحاويات اليوم، فإنه يمثل بالفعل تناقضًا كبيرًا. تمت مناقشة هذا الأمر بشكل مطول في هل يمكن لـ Discourse شحن صور Docker متكررة لا تحتاج إلى تهيئة؟ وهو جدير بالقراءة.

في النهاية، وضعنا الحالي يعمل بشكل جيد للأشخاص الذين لديهم القليل من المهارات التقنية، والذين يمكنهم نسخ ولصق الأوامر في جلسة SSH وتكوين DNS، ولكنهم ليسوا خبراء في حاويات Linux.

وبالنسبة لخبراء حاويات Linux، يمكننا أن نقول لهم إنهم يمكنهم أخذ تلك الصورة المهيأة، وشحنها إلى سجل وإعادة استخدامها على برنامج تنسيق الحاويات المفضل لديهم.

أما الأشخاص الذين يقعون بين الشخصيتين أعلاه، فهم يشعرون بالألم أكثر.

إعجابَين (2)

لم أجد شرحًا حول كيفية استخدام خادم redis واحد لعدة مواقع في هذا الدليل، ولكن يبدو أن هذا يعمل بشكل مباشر عند توفر التكوين متعدد المواقع؟

هل فهمت بشكل صحيح؟
أ) التكوين متعدد المواقع يشغل نفس صورة Docker لعدة منتديات، باستخدام خادم redis واحد وخادم postgres واحد.
ب) استخدام خادم redis واحد لعدة مواقع Discourse (باستخدام نفس الصورة أو لا) غير ممكن، لأنه بدون تشغيل التكوين متعدد المواقع، لن تتم إضافة أي بادئة إلى مفاتيح redis.
ج) لا توجد طريقة أخرى لفرض بادئة لمفاتيح redis.
د) فرض بادئات مختلفة لمفاتيح redis لصور Discourse مختلفة سيسمح باستخدام خادم redis واحد.
هـ) الدعم العام لفرض بادئة عامة لـ redis سيتطلب عدة تغييرات أساسية.