Перейти к основному контенту

Docker Compose

В этом руководстве вы развернете MyEMS с помощью Docker Compose, создав и запустив все сервисы одной командой.

Предварительные требования

  • На хосте установлены docker, docker-compose, npm.
  • Установлен сервер MySQL с именем пользователя 'root' и паролем '!MyEMS1'.
  • К базе данных MySQL можно подключиться с хоста, на котором работает Docker Engine.

Конфигурация

Совет

Под "хостом" понимается сервер, на котором работает движок docker. IP-адрес и учетные данные приведены для примера — измените их при необходимости.

----
Host IP192.168.0.1
Database IP192.168.0.2
Database Userroot
Database Password!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

Примечание: см. 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 Если хост Windows, используйте c:\upload для volumes/source в сервисах api и admin. Если хост Linux, используйте /upload для volumes/source в сервисах api и admin. Убедитесь, что папки 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

На 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
Как решить проблему таймаута загрузки образов

Из-за проблем с интернет-провайдером загрузка образов может быть медленной. Вы можете воспользоваться сторонними сервисами ускорения.