تثبيت Odoo باستخدام Docker على Linux

تثبيت Odoo باستخدام Docker  Compose Linux ubuntu debian centos rRHEL

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

في هذه المقالة، سنرشدك خطوة بخطوة من خلال عملية تثبيت Odoo باستخدام Docker على نظام Linux. سنغطي المواضيع التالية:

  1. المتطلبات الأساسية
  2. تثبيت Docker
  3. سحب صورة Docker لـ Odoo
  4. إنشاء شبكة Docker
  5. إنشاء حاوية PostgreSQL
  6. إنشاء حاوية Odoo
  7. الوصول إلى نسخة Odoo
  8. تكوين Odoo
  9. تحديث Odoo
  10. استكشاف الأخطاء وإصلاحها

1. المتطلبات الأساسية

قبل أن نبدأ، تأكد من توفر المتطلبات الأساسية التالية:

  • نظام Linux (سيستخدم هذا الدليل Ubuntu 20.04 LTS كمثال، لكن الخطوات ستكون مماثلة لتوزيعات Linux الأخرى)
  • مستخدم ليس بجذر له امتيازات sudo
  • فهم أساسي لـ Docker وسطر أوامر Linux

2. تثبيت Docker

Docker هي منصة احتواء شائعة تسمح لك بتغليف التطبيقات ومكوناتها في حاويات منعزلة. إذا لم تقم بتثبيت Docker على نظام Linux الخاص بك بعد، فاتبع هذه الخطوات:

  1. حدث فهرس الحزم:
$ sudo apt-get update
  1. ثبت الحزم المطلوبة للسماح لـ apt باستخدام مستودع عبر HTTPS:
$ sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
  1. أضف المفتاح GPG الرسمي لـ Docker:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  1. أضف مستودع Docker إلى قائمة مصادر النظام الخاص بك:
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
  1. حدث فهرس الحزم مرة أخرى:
$ sudo apt-get update
  1. ثبت آخر إصدار من محرك Docker وcontainerd:
$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io
  1. تحقق من تثبيت 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. إليك كيفية القيام بذلك:

  1. أنشئ مجلدًا جديدًا لتخزين ملفات تكوين Odoo الخاصة بك:
$ sudo mkdir -p /opt/odoo/config
  1. أنشئ ملف odoo.conf جديد في مجلد /opt/odoo/config:
$ sudo nano /opt/odoo/config/odoo.conf
  1. أضف خيارات التكوين المرغوبة إلى ملف 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
  1. احفظ الملف odoo.conf وأغلقه.
  2. أوقف تشغيل حاوية Odoo الحالية:
$ sudo docker stop odoo
  1. أزل حاوية Odoo الحالية:
$ sudo docker rm odoo
  1. شغل حاوية 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 الخاص بك:

  1. اسحب أحدث صورة Docker لـ Odoo:
$ sudo docker pull odoo:latest
  1. أوقف تشغيل حاوية Odoo الحالية:
$ sudo docker stop odoo
  1. أزل حاوية Odoo الحالية:
$ sudo docker rm odoo
  1. شغل حاوية 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:

  1. ثبت Docker Compose إذا لم تكن قد فعلت ذلك بالفعل:
$ sudo apt-get install docker-compose
  1. أنشئ مجلدًا جديدًا لمشروع Odoo الخاص بك وانتقل إليه:
$ mkdir odoo-project
$ cd odoo-project
  1. أنشئ ملفًا جديدًا باسم docker-compose.yml في مجلد odoo-project:
$ nano docker-compose.yml
  1. أضف المحتوى التالي إلى ملف 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 لـ Odoo
  • depends_on: تحدد أن الخدمة web تعتمد على الخدمة db
  • ports: تطابق منفذ 8069 للمضيف إلى منفذ 8069 للحاوية
  • volumes: تثبت المجلد ./config من المضيف إلى المجلد /etc/odoo داخل الحاوية
  • environment: تعيين متغيرات بيئة لحاوية Odoo، بما في ذلك مضيف قاعدة البيانات، والمستخدم، وكلمة المرور

تحدد الخدمة db ما يلي:

  • image: تستخدم صورة Docker PostgreSQL 13
  • environment: تعيين متغيرات بيئة لحاوية PostgreSQL، بما في ذلك مستخدم قاعدة البيانات وكلمة المرور واسمها
  • volumes: تثبت حجمًا مسمى odoo-db-data لاستمرار بيانات PostgreSQL
  1. احفظ الملف docker-compose.yml وأغلقه.
  2. أنشئ مجلد config لتخزين ملفات تكوين Odoo الخاصة بك:
$ mkdir config
  1. أنشئ ملف odoo.conf جديد في مجلد config وأضف خيارات التكوين المرغوبة (ارجع إلى قسم “تكوين Odoo” في المقالة الرئيسية لمزيد من التفاصيل).
  2. ابدأ تشغيل حاويات Odoo وPostgreSQL باستخدام Docker Compose:
$ docker-compose up -d

ستقوم هذه الأمر بإنشاء وتشغيل الحاويات المعرفة في ملف docker-compose.yml. الخيار -d يشغل الحاويات في وضع المتصل (في الخلفية).

  1. اصل إلى نسخة 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 والبوستجريس الخاصة بك:

  1. أوقف تشغيل الحاويات الحالية:
$ sudo docker stop odoo db
  1. أزل الحاويات الحالية:
$ sudo docker rm odoo db  
  1. أزل شبكة Docker الحالية:
$ sudo docker network rm odoo-network
  1. أنشئ شبكة Docker جديدة:
$ sudo docker network create odoo-network
  1. أنشئ حاوية PostgreSQL جديدة:
$ sudo docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=odoo --network=odoo-network --name db postgres:13
  1. أنشئ حاوية 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 الخاص بك.

LEAVE A COMMENT