انتقل إلى المحتوى الرئيسي

Docker Compose

في هذا الدليل، ستقوم بنشر MyEMS باستخدام Docker Compose عن طريق إنشاء وتشغيل جميع الخدمات بأمر واحد.

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

  • تثبيت docker، docker-compose، npm على المضيف.
  • تثبيت خادم MySQL باسم المستخدم 'root' وكلمة المرور '!MyEMS1'.
  • يمكن الاتصال بقاعدة بيانات MySQL من المضيف الذي يعمل عليه محرك Docker.

التكوين

نصيحة

يشير المضيف إلى الخادم الذي يعمل عليه محرك Docker. يتم افتراض IP وكلمة المرور الخاصة بالحساب واستخدامها لعرض التعليمات. يرجى تعديلها حسب الاقتضاء.

----
IP المضيف192.168.0.1
IP قاعدة البيانات192.168.0.2
مستخدم قاعدة البياناتroot
كلمة مرور قاعدة البيانات!MyEMS1

التثبيت

  1. استنساخ المستودع
git clone https://github.com/myems/myems.git
  1. استيراد مخطط قاعدة البيانات
cd myems/database/install
mysql -u root -p < myems_billing_db.sql
mysql -u root -p < myems_carbon_db.sql
mysql -u root -p < myems_energy_baseline_db.sql
mysql -u root -p < myems_energy_db.sql
mysql -u root -p < myems_energy_model_db.sql
mysql -u root -p < myems_energy_plan_db.sql
mysql -u root -p < myems_energy_prediction_db.sql
mysql -u root -p < myems_fdd_db.sql
mysql -u root -p < myems_historical_db.sql
mysql -u root -p < myems_production_db.sql
mysql -u root -p < myems_reporting_db.sql
mysql -u root -p < myems_system_db.sql
mysql -u root -p < myems_user_db.sql

ملاحظة: راجع قاعدة البيانات

  1. تعديل التكوين
نصيحة

افترض أن IP المضيف هو 192.168.0.1، وIP قاعدة البيانات هو 192.168.0.2، وحساب قاعدة البيانات هو: root، وكلمة مرور قاعدة البيانات هي: !MyEMS1، يرجى تعديلها حسب الاقتضاء

3.1 تعديل عنوان API في nginx.conf

cd myems
nano myems-admin/nginx.conf
nano myems-web/nginx.conf

3.2 انسخ example.env إلى .env في كل مجلد وعدل IP قاعدة البيانات واسم المستخدم وكلمة المرور في .env

cd myems
cp myems-aggregation/example.env myems-aggregation/.env
nano myems-aggregation/.env
cp myems-api/example.env myems-api/.env
nano myems-api/.env
cp myems-cleaning/example.env myems-cleaning/.env
nano myems-cleaning/.env
cp myems-modbus-tcp/example.env myems-modbus-tcp/.env
nano myems-modbus-tcp/.env
cp myems-normalization/example.env myems-normalization/.env
nano myems-normalization/.env

3.3 تعديل مجلد التحميل في docker-compose.yml إذا كان المضيف يعمل بنظام Windows، استخدم c:\upload للمجلدات/المصدر في خدمات api و admin. إذا كان المضيف يعمل بنظام Linux، استخدم /upload للمجلدات/المصدر في خدمات api و admin. تأكد من أن مجلدات التحميل في api و admin هي نفس المجلد على المضيف.

  1. بناء واجهة المستخدم الويب

قم بتعديل ملف التكوين:

ملاحظة

احصل على mapboxToken من https://mapbox.com ثم عيّن showOnlineMap إلى true. إذا أردت إيقاف خاصية الخريطة عبر الإنترنت، عيّن showOnlineMap إلى false

cd myems/myems-web
sudo nano src/config.js

البناء:

cd myems/myems-web
npm i --unsafe-perm=true --allow-root --legacy-peer-deps
npm run build
  1. تشغيل أمر docker-compose

على مضيف Windows:

cd myems
docker-compose -f docker-compose-on-windows.yml up -d

على مضيف Linux:

cd myems
docker-compose -f docker-compose-on-linux.yml up -d
  1. التحقق
العنوانالنتيجة المتوقعة
myems-web192.168.0.1:80تسجيل الدخول بنجاح بإدخال الحساب وكلمة المرور
myems-admin192.168.0.1:8001تسجيل الدخول بنجاح بإدخال الحساب وكلمة المرور
myems-api192.168.0.1:8000/versionإرجاع معلومات الإصدار
معلومات

إذا أبلغ API عن خطأ، يرجى التأكد من صحة IP قاعدة البيانات وحساب قاعدة البيانات وكلمة مرور قاعدة البيانات في .env. إذا لم تكن صحيحة، يرجى تعديلها ثم تنفيذ:

docker-compose up --build -d
كيفية حل مشاكل مهلة سحب الصور

بسبب مشاكل شبكة مزود خدمة الإنترنت، قد تواجه بطئًا في سحب الصور. يمكنك استخدام خدمات تسريع الطرف الثالث.