برو به محتوای اصلی

Docker Compose

در این راهنما، یاد خواهید گرفت که چگونه MyEMS را با استفاده از Docker Compose مستقر کنید و تمام سرویس‌ها را با یک دستور واحد ایجاد و راه‌اندازی کنید.

پیش‌نیازها

  • Docker، docker-compose و npm بر روی میزبان (host) نصب شده باشند.
  • سرور MySQL با نام کاربری 'root' و رمز عبور '!MyEMS1' نصب شده باشد.
  • پایگاه داده MySQL قابل اتصال از میزبانی که موتور Docker روی آن اجرا می‌شود، باشد.

پیکربندی

نکته کاربردی

میزبان (host) به سروری اشاره دارد که موتور docker روی آن اجرا می‌شود. IP و اطلاعات حساب و رمز عبور در این راهنما برای نمایش دستورات فرض شده‌اند. لطفاً آن‌ها را مطابق نیاز خود تغییر دهید.

پارامترمقدار پیش‌فرض
IP میزبان (Host IP)192.168.0.1
IP پایگاه داده192.168.0.2
کاربر پایگاه دادهroot
رمز عبور پایگاه داده!MyEMS1

نصب

  1. کلون کردن مخزن (repository)
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

نکته: جزئیات بیشتر را از بخش database مرور کنید.

  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 تغییر پوشه upload در فایل docker-compose.yml

  • اگر میزبان ویندوز باشد، برای volumes/source در سرویس‌های api و admin از مسیر c:\upload استفاده کنید.
  • اگر میزبان لینوکس باشد، برای volumes/source در سرویس‌های api و admin از مسیر /upload استفاده کنید. تأمین کنید که پوشه‌های upload در api و admin همان پوشه روی میزبان باشند.
  1. ساخت رابط کاربری وب (Web UI)

ویرایش فایل پیکربندی:

نکته

توکن 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

بر روی میزبان ویندوز:

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

بر روی میزبان لینوکس:

cd myems
docker-compose -f docker-compose-on-linux.yml up -d
  1. بررسی و تأیید (Verification)
سرویسآدرسنتیجه مورد انتظار
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
نحوه حل مشکل тайم اوت در çek تصاویر (image pull timeout)

به دلیل مشکلات شبکه ارائه‌دهنده خدمات اینترنت (ISP)، ممکن است çek تصاویر کند باشد. می‌توانید از سرویس‌های تسریع ثالث استفاده کنید.