مرتبك بشأن تثبيت دوكر

كنت أتصفح صور Docker المتاحة لـ Discourse اليوم، ولديّ بعض الأسئلة:

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

أنا مشوش بخصوص قاعدة البيانات. لا توجد خطوة لتكوينها. هل قاعدة بيانات Postgres (أو غيرها) مضمنة في نفس الصورة؟ هل Redis كذلك؟ أم أنها جزء اختياري بالكامل؟

في قائمة الأشياء التي ستحتويها صورة Docker، لا يتم ذكر قاعدة البيانات.

أستخدم Docker في العمل للتطوير والاختبار والإنتاج.
حاوياتنا غير قابلة للتغيير (immutable).
عندما نحتاج إلى إصدار صورة جديدة للترقية، نقوم بسحب أحدث الكود من Git وينطلق منها.

نحن لا نقوم أبدًا بإجراء أي تغييرات داخل الحاوية، أو على الأقل لا نتوقع أن تستمر أي تغييرات لفترة أطول من حتى الإصدار التالي.

عندما نرغب في الترقية إلى إصدار محدّث من .NET مثلًا، نقوم ببساطة بتعديل الصورة الأساسية وإصدارها.

عندما قرأت عن صورة Docker لـ Discourse، بدا أن هناك تغييرات تُجرى على محتوى الصورة كما لو كانت تثبيتًا عاديًا. هل التغييرات المُطبّقة على الصورة مخصصة للاستمرار؟

عندما قرأت ذلك لأول مرة، توقعت أن يعني ذلك أن كل شيء يُخزّن في قاعدة البيانات. ولكن إذا كانت قاعدة البيانات داخل الحاوية؟ هل تُحفظ التغييرات على قاعدة البيانات أيضًا؟

إذا كان الأمر كذلك، فكيف أضمن حفظ جميع التغييرات إذا قمت بإيقاف الحاوية ثم إعادة تشغيلها؟

والأهم من ذلك، كيف يؤثر ذلك على الترقية إلى إصدار جديد من برنامج المنتدى؟

بدت لي من خلال ما قرأته أن الترقية تتم باستخدام النسخ داخل الحاوية لتحديث نفسها. كنت أتوقع أن تُصدر صورة جديدة تحتوي على التحديثات، وبعدها تسير الأمور بسلاسة.

أعتقد أنني معتاد على التعامل مع صور Docker كـ “ماشية”؛ تموت، ثم تُستبدل، ولا تُحفظ أبدًا أي تغييرات على الصورة نفسها.

لم أكن أعرف أن هناك صور Docker تحفظ تغييرات تدوم لأكثر من إعادة التشغيل التالية.

مرحبًا @talkingBeat

قاعدة البيانات مرفقة بحجم خارجي خارج حاوية Docker؛ لذا فهي دائمة.

أتمنى أن يكون هذا مفيدًا.

هذا منطقي.
إذا أصدرت Discourse إصدارًا جديدًا، وقمت باستبدال ملف docker بملف جديد وتشغيله، هل ستظل قاعدة البيانات موجودة؟

ماذا عن التخصيصات التي غيّرت ملفات أو أضافت/حذفت ملفات؟

مرحبًا @RockHopper، أهلاً بك مجددًا

يُجري برنامج تشغيل Discourse كل ذلك تلقائيًا؛ وهو ما تدعمه تمامًا فريق Meta هنا.

نأمل أن يكون هذا مفيدًا.