
Odoo هي حزمة قوية مفتوحة المصدر من تطبيقات الأعمال التي تغطي مجموعة واسعة من الوظائف، بما في ذلك إدارة علاقات العملاء (CRM)، ومنشئ مواقع الويب، والتجارة الإلكترونية، وإدارة المشاريع، والمحاسبة، والمزيد. بينما يمكنك تثبيت Odoo مباشرة على نظام Linux الخاص بك، فإن استخدام Docker لإعداد Odoo يوفر عدة مزايا، مثل سهولة النشر، وعزل الموارد بشكل أفضل، وبيئات متسقة عبر أنظمة مختلفة.
في هذه المقالة، سنرشدك خطوة بخطوة من خلال عملية تثبيت Odoo باستخدام Docker على نظام Linux. سنغطي المواضيع التالية:
- المتطلبات الأساسية
- تثبيت Docker
- سحب صورة Docker لـ Odoo
- إنشاء شبكة Docker
- إنشاء حاوية PostgreSQL
- إنشاء حاوية Odoo
- الوصول إلى نسخة Odoo
- تكوين Odoo
- تحديث Odoo
- استكشاف الأخطاء وإصلاحها
1. المتطلبات الأساسية
قبل أن نبدأ، تأكد من توفر المتطلبات الأساسية التالية:
- نظام Linux (سيستخدم هذا الدليل Ubuntu 20.04 LTS كمثال، لكن الخطوات ستكون مماثلة لتوزيعات Linux الأخرى)
- مستخدم ليس بجذر له امتيازات sudo
- فهم أساسي لـ Docker وسطر أوامر Linux
2. تثبيت Docker
Docker هي منصة احتواء شائعة تسمح لك بتغليف التطبيقات ومكوناتها في حاويات منعزلة. إذا لم تقم بتثبيت Docker على نظام Linux الخاص بك بعد، فاتبع هذه الخطوات:
- حدث فهرس الحزم:
$ sudo apt-get update
- ثبت الحزم المطلوبة للسماح لـ
apt
باستخدام مستودع عبر HTTPS:
$ sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
- أضف المفتاح GPG الرسمي لـ Docker:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- أضف مستودع Docker إلى قائمة مصادر النظام الخاص بك:
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
- حدث فهرس الحزم مرة أخرى:
$ sudo apt-get update
- ثبت آخر إصدار من محرك Docker وcontainerd:
$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io
- تحقق من تثبيت Docker بشكل صحيح من خلال تشغيل الأمر التالي:
$ sudo docker run hello-world
إذا تم إعداد كل شيء بشكل صحيح، يجب أن ترى رسالة تشير إلى نجاح تثبيت Docker.
3. سحب صورة Docker لـ Odoo
توفر Odoo صور Docker رسمية يمكنك استخدامها لتشغيل Odoo في بيئة محتواة. لسحب أحدث صورة Odoo، شغل الأمر التالي:
$ sudo docker pull odoo:latest
سيقوم هذا الأمر بتنزيل آخر إصدار من صورة Docker الخاصة بـ Odoo من مستودع Docker Hub الرسمي. إذا كنت تفضل استخدام إصدار محدد من Odoo، يمكنك استبدال latest
بوسم الإصدار المرغوب (مثل odoo:14.0
).
4. إنشاء شبكة Docker
تسمح شبكات Docker للحاويات بالتواصل فيما بينها. سننشئ شبكة جديدة لحاويات Odoo وPostgreSQL الخاصة بنا:
$ sudo docker network create odoo-network
تنشئ هذه الأمر شبكة Docker جديدة تسمى odoo-network
.
5. إنشاء حاوية PostgreSQL
تتطلب Odoo قاعدة بيانات PostgreSQL لتخزين بياناتها. سننشئ حاوية PostgreSQL ونربطها بشبكة odoo-network
التي أنشأناها للتو:
$ sudo docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=odoo --network=odoo-network --name db postgres:13
لنفكك هذا الأمر:
docker run
: تشغيل حاوية جديدة من صورة-d
: تشغيل الحاوية في وضع المتصل (في الخلفية)-e POSTGRES_USER=odoo
: تعيين مستخدم PostgreSQL إلىodoo
-e POSTGRES_PASSWORD=odoo
: تعيين كلمة مرور PostgreSQL إلىodoo
-e POSTGRES_DB=odoo
: تعيين اسم قاعدة البيانات الأولية إلىodoo
--network=odoo-network
: ربط الحاوية بشبكةodoo-network
--name db
: إعطاء الحاوية الاسمdb
postgres:13
: استخدام صورة Docker الرسمية PostgreSQL 13
ينشئ هذا الأمر حاوية PostgreSQL جديدة تحمل الاسم db
متصلة بشبكة odoo-network
مع قاعدة بيانات تسمى odoo
واعتمادات odoo/odoo
.
6. إنشاء حاوية Odoo
الآن بعد أن لدينا حاوية PostgreSQL قيد التشغيل، يمكننا إنشاء حاوية Odoo وربطها بحاوية PostgreSQL:
$ sudo docker run -p 8069:8069 --name odoo --network=odoo-network -e HOST=db -e USER=odoo -e PASSWORD=odoo --link db:db -t odoo
لنفكك هذا الأمر:
docker run
: تشغيل حاوية جديدة من صورة-p 8069:8069
: مطابقة منفذ 8069 للمضيف إلى منفذ 8069 للحاوية (المنفذ الافتراضي لـ Odoo)--name odoo
: إعطاء الحاوية الاسمodoo
--network=odoo-network
: ربط الحاوية بشبكةodoo-network
-e HOST=db
: تعيين مضيف PostgreSQL إلىdb
(اسم حاوية PostgreSQL لدينا)-e USER=odoo
: تعيين مستخدم PostgreSQL إلىodoo
-e PASSWORD=odoo
: تعيين كلمة مرور PostgreSQL إلىodoo
--link db:db
: ربط الحاويةdb
بالحاويةodoo
باستخدام اسم مستعارdb
-t odoo
: تحديد صورة Docker لـ Odoo للاستخدام
ينشئ هذا الأمر حاوية Odoo جديدة تحمل الاسم odoo
متصلة بشبكة odoo-network
ومرتبطة بحاوية PostgreSQL db
. كما يقوم بمطابقة منفذ 8069 للمضيف إلى منفذ 8069 للحاوية، مما يسمح لك بالوصول إلى نسخة Odoo من متصفح الويب الخاص بك.
7. الوصول إلى نسخة Odoo
بمجرد أن تكون حاوية Odoo قيد التشغيل، يمكنك الوصول إلى نسخة Odoo بفتح متصفح ويب والانتقال إلى http://ip_خادم_الخاص_بك:8069
. استبدل ip_خادم_الخاص_بك
بعنوان IP لخادم Linux الخاص بك.
إذا كان كل شيء معدًا بشكل صحيح، يجب أن ترى شاشة ترحيب Odoo. من هنا، يمكنك إنشاء قاعدة بيانات جديدة أو استخدام قاعدة البيانات odoo
التي أنشأناها سابقًا.
8. تكوين Odoo
في حين أن التكوين الافتراضي مناسب لمعظم حالات الاستخدام، قد ترغب في تخصيص جوانب معينة من تثبيت Odoo الخاص بك. توفر Odoo ملف تكوين يسمى odoo.conf
يسمح لك بتعديل إعدادات مختلفة.
للوصول إلى ملف odoo.conf
، ستحتاج إلى إنشاء حجم جديد وتثبيته على حاوية Odoo. إليك كيفية القيام بذلك:
- أنشئ مجلدًا جديدًا لتخزين ملفات تكوين Odoo الخاصة بك:
$ sudo mkdir -p /opt/odoo/config
- أنشئ ملف
odoo.conf
جديد في مجلد/opt/odoo/config
:
$ sudo nano /opt/odoo/config/odoo.conf
- أضف خيارات التكوين المرغوبة إلى ملف
odoo.conf
. على سبيل المثال، لتغيير اللغة والمنطقة الزمنية الافتراضية:
[options]
; هذه هي كلمة المرور التي تسمح بعمليات قاعدة البيانات:
admin_passwd = كلمة_مرور_المسؤول
db_host = db
db_port = 5432
db_user = odoo
db_password = odoo
addons_path = /mnt/extra-addons
; اللغة
default_lang = ar_SA
; المنطقة الزمنية
timezone = Europe/Paris
- احفظ الملف
odoo.conf
وأغلقه. - أوقف تشغيل حاوية Odoo الحالية:
$ sudo docker stop odoo
- أزل حاوية Odoo الحالية:
$ sudo docker rm odoo
- شغل حاوية Odoo جديدة مع حجم التكوين المُثبَّت:
$ sudo docker run -p 8069:8069 --name odoo --network=odoo-network -e HOST=db -e USER=odoo -e PASSWORD=odoo --link db:db -v /opt/odoo/config:/etc/odoo -t odoo
في هذا الأمر، أضفنا الخيار -v /opt/odoo/config:/etc/odoo
لتثبيت المجلد /opt/odoo/config
من المضيف إلى المجلد /etc/odoo
داخل الحاوية. سيسمح هذا لـ Odoo بقراءة ملف odoo.conf
من الحجم المُثبَّت.
بعد تشغيل هذا الأمر، يجب أن تكون نسخة Odoo الخاصة بك الآن معدة بالإعدادات المحددة في ملف odoo.conf
.
9. تحديث Odoo
عندما يتم إصدار إصدار جديد من Odoo، ستحتاج إلى تحديث صورة Docker والحاويات الخاصة بك للاستفادة من أحدث الميزات وتحديثات الأمان. إليك كيفية تحديث تثبيت Odoo الخاص بك:
- اسحب أحدث صورة Docker لـ Odoo:
$ sudo docker pull odoo:latest
- أوقف تشغيل حاوية Odoo الحالية:
$ sudo docker stop odoo
- أزل حاوية Odoo الحالية:
$ sudo docker rm odoo
- شغل حاوية Odoo جديدة مع الصورة المحدثة:
$ sudo docker run -p 8069:8069 --name odoo --network=odoo-network -e HOST=db -e USER=odoo -e PASSWORD=odoo --link db:db -v /opt/odoo/config:/etc/odoo -t odoo:latest
هذا الأمر مشابه للأمر الذي استخدمناه لإنشاء حاوية Odoo الأولية، ولكن مع وسم latest
في النهاية لتحديد أننا نريد استخدام أحدث إصدار من صورة Docker الخاصة بـ Odoo.
بعد تشغيل هذا الأمر، يجب أن تكون نسخة Odoo الخاصة بك محدثة إلى أحدث إصدار.
10. استخدام Docker Compose لتثبيت Odoo
بينما يمكنك تشغيل أوامر Docker يدويًا لإعداد Odoo ومكوناته، فإن استخدام Docker Compose يمكن أن يبسط العملية من خلال تعريف وإدارة تطبيقات Docker متعددة الحاويات. يسمح لك Docker Compose بتحديد التكوين لجميع الحاويات المطلوبة في ملف YAML واحد، مما يجعل من السهل نشر وإدارة إعداد Odoo الخاص بك.
إليك كيفية استخدام Docker Compose لتثبيت Odoo:
- ثبت Docker Compose إذا لم تكن قد فعلت ذلك بالفعل:
$ sudo apt-get install docker-compose
- أنشئ مجلدًا جديدًا لمشروع Odoo الخاص بك وانتقل إليه:
$ mkdir odoo-project
$ cd odoo-project
- أنشئ ملفًا جديدًا باسم
docker-compose.yml
في مجلدodoo-project
:
$ nano docker-compose.yml
- أضف المحتوى التالي إلى ملف
docker-compose.yml
:
version: '3'
services:
web:
image: odoo:latest
depends_on:
- db
ports:
- "8069:8069"
volumes:
- ./config:/etc/odoo
environment:
- HOST=db
- USER=odoo
- PASSWORD=odoo
db:
image: postgres:13
environment:
- POSTGRES_USER=odoo
- POSTGRES_PASSWORD=odoo
- POSTGRES_DB=odoo
volumes:
- odoo-db-data:/var/lib/postgresql/data
volumes:
odoo-db-data:
هذا الملف docker-compose.yml
يعرف خدمتين: web
و db
. الخدمة web
هي تطبيق Odoo، والخدمة db
هي قاعدة بيانات PostgreSQL.
تحدد الخدمة web
ما يلي:
image
: تستخدم أحدث صورة Docker لـ Odoodepends_on
: تحدد أن الخدمةweb
تعتمد على الخدمةdb
ports
: تطابق منفذ 8069 للمضيف إلى منفذ 8069 للحاويةvolumes
: تثبت المجلد./config
من المضيف إلى المجلد/etc/odoo
داخل الحاويةenvironment
: تعيين متغيرات بيئة لحاوية Odoo، بما في ذلك مضيف قاعدة البيانات، والمستخدم، وكلمة المرور
تحدد الخدمة db
ما يلي:
image
: تستخدم صورة Docker PostgreSQL 13environment
: تعيين متغيرات بيئة لحاوية PostgreSQL، بما في ذلك مستخدم قاعدة البيانات وكلمة المرور واسمهاvolumes
: تثبت حجمًا مسمىodoo-db-data
لاستمرار بيانات PostgreSQL
- احفظ الملف
docker-compose.yml
وأغلقه. - أنشئ مجلد
config
لتخزين ملفات تكوين Odoo الخاصة بك:
$ mkdir config
- أنشئ ملف
odoo.conf
جديد في مجلدconfig
وأضف خيارات التكوين المرغوبة (ارجع إلى قسم “تكوين Odoo” في المقالة الرئيسية لمزيد من التفاصيل). - ابدأ تشغيل حاويات Odoo وPostgreSQL باستخدام Docker Compose:
$ docker-compose up -d
ستقوم هذه الأمر بإنشاء وتشغيل الحاويات المعرفة في ملف docker-compose.yml
. الخيار -d
يشغل الحاويات في وضع المتصل (في الخلفية).
- اصل إلى نسخة Odoo بفتح متصفح ويب والانتقال إلى
http://ip_خادم_الخاص_بك:8069
.
يبسط استخدام Docker Compose عملية إعداد وإدارة حاويات متعددة لتثبيت Odoo الخاص بك. يعمل ملف docker-compose.yml
كمصدر موحد للحقيقة لتكوين تطبيقك، مما يجعل من الأسهل صيانة ونشر إعداد Odoo الخاص بك عبر بيئات مختلفة.
إذا احتجت إلى إيقاف تشغيل الحاويات أو إزالتها، يمكنك استخدام أوامر Docker Compose التالية:
# إيقاف تشغيل الحاويات
$ docker-compose stop
# إزالة الحاويات
$ docker-compose down
يوفر Docker Compose نهجًا أكثر هيكلة وقابلية للتوسع لنشر وإدارة Odoo ومكوناته باستخدام حاويات Docker.
استكشاف الأخطاء وإصلاحها
إذا واجهتك أي مشاكل أثناء عملية التثبيت أو التكوين، فإليك بعض نصائح استكشاف الأخطاء وإصلاحها الشائعة:
التحقق من سجلات الحاوية
إذا لم تعمل نسخة Odoo الخاصة بك كما هو متوقع، يمكنك التحقق من سجلات الحاوية للحصول على مزيد من المعلومات. لعرض سجلات حاوية Odoo، شغل:
$ sudo docker logs odoo
ستعرض هذه الأمر سجلات الحاوية odoo
، والتي يمكن أن تساعدك على تحديد المشكلات وتشخيصها.
التحقق من حالة الحاوية
يمكنك التحقق من حالة حاويات Docker الخاصة بك عن طريق تشغيل:
$ sudo docker ps -a
ستعرض هذه الأمر جميع الحاويات على نظامك، جنبًا إلى جنب مع حالاتها (قيد التشغيل، متوقفة، إلخ). إذا لم تكن حاوية قيد التشغيل، يمكنك محاولة تشغيلها بالأمر التالي:
$ sudo docker start اسم_الحاوية
استبدل اسم_الحاوية
باسم الحاوية التي تريد تشغيلها (مثل odoo
أو db
).
إعادة بناء الحاويات
إذا قمت بإجراء تغييرات على تكوين Odoo الخاص بك أو واجهت مشاكل مع حاوياتك الحالية، فقد تحتاج إلى إعادة بنائها. اتبع هذه الخطوات لإعادة بناء حاويات Odoo والبوستجريس الخاصة بك:
- أوقف تشغيل الحاويات الحالية:
$ sudo docker stop odoo db
- أزل الحاويات الحالية:
$ sudo docker rm odoo db
- أزل شبكة Docker الحالية:
$ sudo docker network rm odoo-network
- أنشئ شبكة Docker جديدة:
$ sudo docker network create odoo-network
- أنشئ حاوية PostgreSQL جديدة:
$ sudo docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=odoo --network=odoo-network --name db postgres:13
- أنشئ حاوية Odoo جديدة:
$ sudo docker run -p 8069:8069 --name odoo --network=odoo-network -e HOST=db -e USER=odoo -e PASSWORD=odoo --link db:db -v /opt/odoo/config:/etc/odoo -t odoo:latest
ستقوم هذه العملية بإنشاء حاويات جديدة بأحدث تكوين وأي تغييرات أجريتها.
الخلاصة
بإتباع هذا الدليل المفصل، يجب أن تكون الآن قادرًا على تثبيت Odoo وتكوينها بنجاح باستخدام Docker على نظام Linux الخاص بك. توفر Docker طريقة مناسبة لإدارة Odoo ونشرها، وتضمن بيئات متسقة عبر أنظمة مختلفة وتبسط عملية التثبيت.
تذكر مراجعة الوثائق الرسمية لـ Odoo ومنتديات المجتمع إذا واجهتك أي مشكلات أو كانت لديك أسئلة محددة حول تكوين أو تخصيص تثبيت Odoo الخاص بك.