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