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 |
نصب
- کلون کردن مخزن (repository)
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
نکته: جزئیات بیشتر را از بخش database مرور کنید.
- تغییر پیکربندی
فرض میشود 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 همان پوشه روی میزبان باشند.
- ساخت رابط کاربری وب (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
npm run build
- اجرای دستور 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
- بررسی و تأیید (Verification)
| سرویس | آدرس | نتیجه مورد انتظار |
|---|---|---|
| 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
به دلیل مشکلات شبکه ارائهدهنده خدمات اینترنت (ISP)، ممکن است çek تصاویر کند باشد. میتوانید از سرویسهای تسریع ثالث استفاده کنید.