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 |
التثبيت
- استنساخ المستودع
git clone https://github.com/myems/myems.git
- استيراد مخطط قاعدة البيانات
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
ملاحظة: راجع قاعدة البيانات
- تعديل التكوين
افترض أن 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 هي نفس المجلد على المضيف.
- بناء واجهة المستخدم الويب
قم بتعديل ملف التكوين:
احصل على 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
- تشغيل أمر 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
- التحقق
| العنوان | النتيجة المتوقعة | |
|---|---|---|
| myems-web | 192.168.0.1:80 | تسجيل الدخول بنجاح بإدخال الحساب وكلمة المرور |
| myems-admin | 192.168.0.1:8001 | تسجيل الدخول بنجاح بإدخال الحساب وكلمة المرور |
| myems-api | 192.168.0.1:8000/version | إرجاع معلومات الإصدار |
إذا أبلغ API عن خطأ، يرجى التأكد من صحة IP قاعدة البيانات وحساب قاعدة البيانات وكلمة مرور قاعدة البيانات في .env. إذا لم تكن صحيحة، يرجى تعديلها ثم تنفيذ:
docker-compose up --build -d
بسبب مشاكل شبكة مزود خدمة الإنترنت، قد تواجه بطئًا في سحب الصور. يمكنك استخدام خدمات تسريع الطرف الثالث.