إضافة وتكوين موقع ويب مبني على Docker في ServBay
يعد ServBay بيئة تطوير ويب محلية مُصممة خصيصًا لنظام macOS وتدعم العديد من اللغات والتقنيات. إلى جانب تشغيل حزم البرمجيات المدمجة في ServBay مباشرة (مثل PHP، Node.js، Python، Go، Java، قواعد البيانات وغيرها) لاستضافة مواقعك، يمكنك أيضًا استخدام حاويات Docker لتشغيل وإدارة موقعك أو خدماتك. يقدّم هذا الأسلوب مرونة عالية، وعزلًا للبيئة، واتساقًا في التشغيل، وهو مثالي للمشاريع التي تتطلب بيئة محددة أو تبعيات خاصة.
تشرح هذه المقالة بالتفصيل كيفية إضافة موقع ويب يعمل على Docker إلى ServBay ودمجه في سير عمل التطوير المحلي لديك باستخدام ميزة الوكيل العكسي في ServBay.
نظرة عامة
عبر تكوين ServBay كوكيل عكسي، يمكنك إعادة توجيه الطلبات الواردة لأسماء نطاقات معينة إلى منافذ الخدمات العاملة داخل حاويات Docker. يتولى ServBay معالجة حركة المرور الواردة (مثل شهادات HTTPS، تحليل اسم النطاق وغيره)، فيما تركز حاوية Docker على تشغيل تطبيقك. يمنحك هذا النموذج قوة ومرونة واجهات إدارة ServBay مع إمكانات Docker الفائقة في الحاويات.
ستوجهك الخطوات التالية خلال عملية إضافة وتكوين موقع ويب مبني على خدمة Docker في ServBay بالكامل.
المتطلبات الأساسية
قبل البدء، تأكد من تحقق المتطلبات التالية:
- تثبيت وتشغيل ServBay: يجب أن يكون ServBay مثبتًا ويعمل بشكل صحيح على جهازك العامل بنظام macOS.
- تثبيت وتشغيل Docker: يجب أن يكون Docker Desktop أو أي بيئة Docker أخرى مثبّتة ومفعلة على macOS.
- جهوزية صورة وحاوية Docker: يجب أن تكون قد أنشأت أو حملت صورة Docker الخاصة بموقعك أو تطبيقك، وتستطيع تشغيلها لبدء الحاوية.
خطوات إضافة الموقع بالتفصيل
الخطوة 1: تجهيز وتشغيل حاوية Docker
عليك أولًا التأكد من أن حاوية Docker الخاصة بك قيد التشغيل، وأن خدمة الويب (مثل خادم ويب) داخلها تستمع على منفذ تم كشفه إلى المضيف (macOS) باستخدام خاصية ربط المنافذ في Docker.
على سبيل المثال، إذا كان لديك حاوية Nginx بسيطة، ويستمع Nginx داخل الحاوية على المنفذ 80، يمكنك تنفيذ الأمر التالي لربط المنفذ 8080 للمضيف بالمنفذ 80 في الحاوية:
docker run -d --name my-nginx-servbay -p 8080:80 nginx
في هذا المثال، يستمع خادم Nginx داخل الحاوية my-nginx-servbay
على المنفذ 80
. باستخدام الخيار -p 8080:80
، قمنا بربط المنفذ 80
من الحاوية بالمنفذ 8080
من المضيف. سيتعين على ServBay الاتصال بمنفذ 8080
على النظام المحلي.
يرجى التأكد، بناءً على إعدادات Dockerfile وتطبيقك، أن الخدمة داخل الحاوية تستمع إلى المنفذ الصحيح، وأنك ربطت هذا المنفذ بمنفذ متاح على المضيف.
الخطوة 2: فتح واجهة إدارة ServBay
ابحث عن أيقونة تطبيق ServBay
في مجلد التطبيقات في macOS، وانقر مرتين لفتح واجهة إدارة ServBay.
الخطوة 3: الانتقال إلى صفحة إدارة المواقع
بعد فتح ServBay، ستظهر لك الواجهة الرئيسية. في قائمة التنقل الجانبية اليسرى، ابحث عن خيار المواقع
واضغط عليه. سينقلك هذا إلى صفحة إدارة المواقع، حيث يمكنك استعراض وإدارة جميع المواقع المحلية التي أضفتها.
توضيح: انقر على "المواقع" في شريط التنقل الأيسر للدخول إلى صفحة الإدارة.
الخطوة 4: إضافة موقع جديد
في أسفل صفحة إدارة المواقع، ستجد زر +
. اضغط عليه ليفتح لك ServBay نموذجًا جديدًا على الجانب الأيمن لإدخال إعدادات الموقع الجديد.
توضيح: انقر على زر "+" أسفل الصفحة لإضافة موقع جديد.
الخطوة 5: تكوين إعدادات الموقع
في نموذج إعداد الموقع الجديد، قم بملء المعلومات الأساسية التالية:
- الاسم (Name): حدد اسمًا يسهل تمييزه لموقعك، مثل
Docker Nginx Demo
. هذا الاسم للاستخدام الداخلي في ServBay فقط. - اسم النطاق (Domain): أدخل اسم النطاق المحلي الذي ترغب بالوصول من خلاله إلى موقع حاوية Docker عبر المتصفح. يُستحسن استخدام اللاحقة
.servbay.demo
لتجنب التضارب مع النطاقات العامة، مثلdocker.servbay.demo
. سيقوم ServBay تلقائيًا بتعديل ملف hosts في نظامك ليشير هذا النطاق إلى المحلي (127.0.0.1
). - البروتوكول (Protocol): اختر البروتوكول الذي يدعمه الموقع. غالبًا يكفي إبقاء الخيار الافتراضي
HTTP/HTTPS
. سيراقب ServBay المنافذ 80 (HTTP) و443 (HTTPS) ويضبط الإعدادات حسب شهادة SSL. - طريقة طلب شهادة SSL: يُوصى باختيار
ServBay CA
. سيقوم ServBay تلقائيًا بإنشاء وإدارة شهادة SSL محلية موقعة من شهادة مستخدم ServBay الموثوقة. إذا قمت بتثبيتServBay Public CA
في سلسلة مفاتيح نظامك، فسوف يثق المتصفح بهذه الشهادة ويسهّل تطوير واختبار HTTPS محليًا. بإمكانك أيضًا اختيارACME
(مثل شهادات Let's Encrypt) أوCustom
(باستخدام شهادة خاصة). - نوع الموقع (Website Type): [هام] اختر
وكيل عكسي (Reverse Proxy)
. سيعمل ServBay كبوابة على هذا النطاق ويعيد توجيه الطلبات إلى خدمة الخلفية المحددة. - عنوان الـ IP (IP Address): أدخل عنوان IP الذي تستمع عليه خدمة حاوية Docker على المضيف. غالبًا ما يكون
127.0.0.1
في أغلب إعدادات Docker المحلية. - المنفذ (Port): أدخل رقم المنفذ الذي كشفت عنه حاوية Docker على المضيف. هذا يتطابق مع رقم المنفذ الذي وضعته في أمر
docker run -p <منفذ_المضيف>:<منفذ_الحاوية>
. فعلى سبيل المثال، إذا استخدمت-p 8080:80
، اكتب هنا8080
.
توضيح: ملء معلومات إعداد موقع وكيل عكسي قائم على Docker.
الخطوة 6: إكمال وحفظ الإعدادات
بعد ملء جميع المعلومات الضرورية، اضغط زر إضافة (Add)
أسفل النموذج.
سيقوم ServBay بمعالجة طلبك تلقائيًا، ويضيف قاعدة وكيل عكسي في إعدادات خادم الويب المدمج (مثل Caddy أو Nginx)، بالإضافة لتعديل ملف hosts في النظام لتوجيه اسم النطاق المحلي الذي اخترته.
بعد حفظ الإعدادات بنجاح، قد يحتاج ServBay لثوانٍ لتطبيق التغييرات، وبعدها بإمكانك تجربة الدخول إلى اسم النطاق الذي أضفته.
الخطوة 7: زيارة الموقع واستخدام الخيارات السريعة
بعد حفظ الإعدادات بنجاح، عد إلى صفحة إدارة المواقع وسترى الموقع الجديد في القائمة. تأكد أن حالته تظهر كـ"يعمل".
يمكنك الآن زيارة اسم النطاق الذي قمت بإعداده في المتصفح (مثل http://docker.servbay.demo
أو https://docker.servbay.demo
). إذا كانت الإعدادات صحيحة، سيعيد ServBay توجيه طلبك إلى خدمة حاوية Docker وستظهر الصفحة التي تقدمها الحاوية في المتصفح.
في قائمة المواقع، ستجد مجموعة من أزرار الخيارات السريعة التي تقدمها ServBay، منها:
- فتح الدليل الجذري للموقع في بيئة التطوير (IDE): (قد لا يكون متاحًا أو يشير إلى مجلد إعدادات ServBay في حالة المواقع من نوع وكيل عكسي، حسب الإعدادات والإصدار)
- فتح الموقع في المتصفح: افتح عنوان موقعك بسرعة في تبويب جديد.
- مشاهدة سجلات الموقع: عرض سجلات الدخول والأخطاء الخاصة بالموقع، وهي ميزة مفيدة جدًا لتشخيص المشاكل.
- إيقاف/تشغيل الموقع: تعطيل أو تفعيل التوجيه في ServBay مؤقتًا لهذا الموقع.
- حذف الموقع: إزالة إعدادات الموقع من ServBay.
توضيح: زر الخيارات السريعة بجوار كل موقع في قائمة ServBay.
ملاحظات وأفضل الممارسات
- حالة حاوية Docker: تأكد دومًا أن الحاوية الهدف قيد التشغيل، وإلا لن يستطيع ServBay إعادة توجيه الطلبات بنجاح.
- ربط المنافذ: تحقق جيدًا أن إعدادات ربط المنافذ في Docker (
-p
) تتطابق مع المنفذ المدوّن في ServBay، وأن المنفذ غير مشغول من قبل تطبيق آخر. - جدار الحماية: افحص إعدادات جدار الحماية في macOS، وتأكد أن المنافذ الافتراضية 80 و443، وكذلك منفذ Docker المكشوف على المضيف، ليست محجوبة.
- وضع شبكة Docker: غالبًا ما يكون وضع الشبكة الافتراضي
bridge
مع استخدام خيار-p
لربط المنافذ هو الأبسط. إذا استخدمت وضعhost
في Docker، يمكن لـServBay أن يتصل بالخدمة مباشرة عبر المنفذ الداخلي للحاوية (مثلاً إذا كان في الحاوية المنفذ 80، يتم وضع 80 في إعداد ServBay)، لكن قد تظهر مشاكل تضارب المنافذ مع هذا الوضع. - شهادة ServBay CA: لضمان سلاسة تطوير HTTPS، يُوصى بشدة بتثبيت شهادة ServBay Public CA لتصبح الشهادات المحلية موثوقة وتتفادى رسائل الأخطاء الأمنية في المتصفح.
الأسئلة الشائعة وحلول الأعطال (FAQ)
س: بعد إضافة الموقع لا يمكنني الدخول إليه ويظهر خطأ أو انتهاء المهلة في المتصفح؟
ج: اتبع الخطوات التالية للتشخيص:
- تحقق من حالة الموقع في ServBay: في صفحة إدارة المواقع، تأكد أن الموقع يظهر في وضع التشغيل.
- تحقق من حالة حاوية Docker: في الطرفية نفذ
docker ps
وتأكد أن الحاوية المطلوبة تعمل. - تحقق من ربط المنافذ في Docker: نفّذ
docker ps
وتأكد من وجود منفذ المضيف (مثال:0.0.0.0:8080->80/tcp
أو127.0.0.1:8080->80/tcp
) وهو نفس المنفذ المدرج في إعدادات ServBay. - افحص الخدمة داخل الحاوية: تأكد أن خدمة الويب الداخلية (Nginx، Apache، تطبيق Node، الخ…) تعمل على المنفذ المطلوب وليس بها أخطاء. يمكنك مراجعة سجلات الحاوية بأمر (
docker logs <معرّف أو اسم الحاوية>
). - راجع سجلات ServBay: انقر على أيقونة السجلات بجوار الموقع في قائمة ServBay لاستعراض سجلات الدخول والأخطاء بحثًا عن تفاصيل الفشل في التحويل.
- تحقق من ملف hosts: رغم أن ServBay يعدّله تلقائيًا، يمكنك يدويًا مراجعة
/etc/hosts
والتأكد من توجيه اسم النطاق إلى127.0.0.1
. - افحص الجدار الناري: تأكد أنه لا يحجب المنافذ المستخدمة بواسطة ServBay أو Docker على المضيف.
س: هل يمكنني إدارة دورة حياة حاويات Docker نفسها عبر ServBay؟
ج: يتولى ServBay إدارة خدمات الويب المحلية وقواعد البيانات وبيئات البرمجة وتوجيه الحركة إلى الخدمات الخلفية (بما فيها Docker). حاليًا، لا يقدّم ServBay أدواتً لإدارة حاويات Docker مباشرةً (مثل بدء التشغيل، إيقاف الحاويات، بناء الصور، إلخ). لا يزال عليك استخدام واجهة سطر أوامر Docker أو Docker Desktop لإدارة الحاويات.
س: ما هي ServBay CA؟ ولماذا أحتاج تثبيتها؟
ج: ServBay CA (سلطة التصديق) هي آلية إدارة الشهادات التي يوفّرها ServBay لتسهيل تطوير HTTPS محليًا. تُستخدم ServBay User CA لتوقيع شهادات SSL لمواقعك المحلية، وتعد ServBay Public CA شهادة الجذر لتلك التواقيع. عبر تثبيت ServBay Public CA في سلسلة مفاتيح النظام لديك، ستثق كافة التطبيقات ومتصفحات الإنترنت بالشهادات المحلية الموقعة، ولن تظهر تحذيرات "الاتصال غير آمن" عند تصفح مواقعك عبر HTTPS محليًا. هذه الخطوة هامة لمحاكاة بيئة الإنتاج وتأمين التطوير المحلي.
الخلاصة
إضافة موقع ويب يعمل من خلال Docker في ServBay طريقة فعالة ومرنة؛ حيث يعمل ServBay كمحور رئيسي لإدارة النطاقات الداخلية وحركة المرور، مستفيدًا من قوة Docker في تشغيل وحجز بيئات التطبيقات. فقط عبر خطوات تكوين بسيطة للوكيل العكسي، بإمكانك دمج أي مشروع قائم على Docker في سير العمل الخاص بك على ServBay بسلاسة. باتباع الخطوات والملاحظات المذكورة في هذا الدليل، تستطيع تجهيز وتشغيل موقعك المحلي المبني على Docker بسرعة وسهولة.