دائما في نفس الإطار، أي مشاركة بعض القبسات من العمل الحالي، في هذا المقال سأشارك معكم خطوات تشغيل أودو باستخدام دوكر مع تخصيص الإعدادات لتخزين ملف التهيئة وإضافة الإضافات من المضيف مباشرة.
في الحقيقة سأقوم بذلك على حاسوبي الشخصي فقط لأنها مجرد عملية اختبار قبل التطبيق على المخدم الفعلي (على السحابة.. والضباب وداكشي 😁)، ورغم أنني استخدم أودو عبر دوكر في جل الأعمال الفعلية إلا أن الاختبارات عادة أنجزها في نسخ مثبتة محليا.. ولكن كثرة النسخ المحلية خلاتني نرجع لاختيار دوكر كحل سحري لمشكلة التضاربات.. مع تعديل بسيط (صغنن خلاوها مصراوة) يتعلق بالمنفذ، حيث استخدمت 8070 بدل المنفذ الافتراضي الذي تستخدمه إحدى نسخ أودو سلفا في الجهاز.
النسخة التي سنستخدمها هنا هي الـ 15 وذلك لأن المشروع المطلوب تنفيذه مطور سلفا على هذه النسخة.
أولا، لنحدد أهم النقاط في هذا المقال:
حل المشاكل التي قد تظهر أثناء العملية.
كيفية إنشاء قاعدة بيانات PostgreSQL باستخدام Docker.
تشغيل Odoo مع ربط ملفات التهيئة والإضافات المخصصة من نظام المضيف.
إذا، لنبدأ على بركة الله ☝️👇
المتطلبات
- نظام تشغيل مثبت عليه Docker وDocker Compose (اختياري).
- معرفة أساسية بـ Docker.
- نسخة Odoo 15.
الخطوات العملية
1. إنشاء قاعدة بيانات PostgreSQL
نبدأ بإنشاء حاوية قاعدة البيانات باستخدام PostgreSQL. الأمر التالي يقوم بتخزين البيانات في مجلد Docker Volume وربط نسخة احتياطية مع مسار مخصص على المضيف:
docker run -d -v odoo-db:/var/lib/postgresql/data -v /home/abdennacer/Desktop/pro/wrk/dockerodoo15/host_backup:/host_backup -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres –name odoo15db postgres
هذا الأمر سيقوم أول شيء يتحميل كل الملفات اللازمة لمخدم قاعدة البيانات ويحفظ صورتها للاستخدام لاحقا (لتفادي تحميلها في كل مرة) تحت اسم postgres:latest
وهذا شرح سريع لأهم المعلومات حول الامر أعلاه:
-v odoo-db:/var/lib/postgresql/data
: تخزين البيانات بشكل دائم باستخدام Docker Volume.-v /home/abdennacer/Desktop/pro/wrk/dockerodoo15/host_backup
: حفظ النسخ الاحتياطية على المضيف.POSTGRES_USER
,POSTGRES_PASSWORD
,POSTGRES_DB
: بيانات الدخول إلى قاعدة البيانات.--name odoo15db
: تعيين اسم الحاوية.
2. إعداد ملف التهيئة والإضافات
إنشاء المجلدات اللازمة
قم بإنشاء المجلدين لتخزين ملف التهيئة والإضافات المخصصة:
mkdir -p /home/abdennacer/Desktop/pro/wrk/dockerodoo15/odoo-config
mkdir -p /home/abdennacer/Desktop/pro/wrk/dockerodoo15/odoo-addons
طبعا بدل المجلدين استخدم ما يناسبك حسب
تهيئة ملف الاعدادات
nano /home/abdennacer/Desktop/pro/wrk/dockerodoo15/odoo-config/odoo.conf
املأه بهذه البيانات (إذا لم تكن لك دراية بالموضوع سلفا، ما تصدعش راسك بها حاليا، فقط ضعها كما هي):
[options]
admin_passwd = admin
db_host = db
db_port = 5432
db_user = odoo
db_password = odoo
addons_path = /mnt/extra-addons
logfile = /var/log/odoo/odoo.log
xmlrpc_port = 8069
3. تشغيل حاوية أودو
بعد إعداد قاعدة البيانات وتهيئة المجلدات، لندخل في صلب الموضوع.. قم بتشغيل أودو باستخدام الأمر التالي:
docker run -d –name odoo15 –link odoo15db:db -p 8070:8069 -v /home/abdennacer/Desktop/pro/wrk/dockerodoo15/odoo-config/odoo.conf:/etc/odoo/odoo.conf -v /home/abdennacer/Desktop/pro/wrk/dockerodoo15/odoo-addons:/mnt/extra-addons custom-odoo:15
لو انتبهت، هنا خصصنا المنفذ الذي نريده على الحاسوب أو المخدم المضيف:
-p 8070:8069
بالنسبة لـ custom-odoo:15 يمكنك إنشاؤها بإنشاء ملف تحت اسم Dockerfile محتواه:
FROM odoo:15
ENV HOST=db
ENV USER=odoo
ENV PASSWORD=odoo
EXPOSE 8069
ثم نفذ هذا الأمر في نفس المسار:
docker build -t custom-odoo:15 .
وإلا فيمكنك استخدام odoo:15 مباشرة (إنما استخدمت هذه لأنني سأحتاج لاحقا إضافة مكتبات خارجية في نسخة أخرى حيث سأعدل على ملف “دوكرفايل” وأضيفها هناك وأنشيء النسخة المخصصة حين أحتاجها.
ومبروك عليك، النظام الان شغال على http://localhost:8070
في حالة لم يكن لديك اشكال في المنفذ يمكنك تركه على الافتراضي في الأمر أعلاه.
بزيارة الرابط المحلي أعلاه، يفترض الان أن يظهر هكذا:

وبعد إنشاء قاعدة بياناتك، يمكنك الشروع في الاستخدام بشكل عادي:
