Vai al contenuto principale

Docker Compose

In questa guida, distribuirai MyEMS con Docker compose creando e avviando tutti i servizi con un singolo comando.

Prerequisito

  • Docker, docker-compose, npm installati sull'host.
  • Server MySQL installato con username 'root' e password '!MyEMS1'.
  • Il database MySQL può essere connesso dall'host su cui viene eseguito il Docker Engine.

Configurazione

Suggerimento

L'host si riferisce al server su cui viene eseguito il motore docker. IP e password dell'account sono assunti e utilizzati per mostrare le istruzioni. Modificali come appropriato.

----
IP Host192.168.0.1
IP Database192.168.0.2
Utente Databaseroot
Password Database!MyEMS1

Installazione

  1. Clona repository
git clone https://github.com/myems/myems.git
  1. Importa schema database
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

Nota: Riferimento a database

  1. Modifica Config
Suggerimento

Supponendo che l'IP host sia 192.168.0.1, l'IP database sia 192.168.0.2, l'account database sia: root e la password database sia: !MyEMS1, modificare come appropriato

3.1 Modifica indirizzo API in nginx.conf

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

3.2 Copia example.env in .env in ogni cartella e modifica IP database, username e password in .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 Modifica cartella upload in docker-compose.yml Se host Windows, usa c:\upload per volumes/source nei servizi api e admin. Se host Linux, usa /upload per volumes/source nei servizi api e admin. Assicurati che le cartelle upload in api e admin siano la stessa cartella sull'host.

  1. Compila Interfaccia Web

Modifica file configurazione:

Nota

Ottieni mapboxToken da https://mapbox.com e poi imposta showOnlineMap a true. Se vuoi disattivare funzione mappa online, imposta showOnlineMap a false

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

Compila:

cd myems/myems-web
npm i --unsafe-perm=true --allow-root --legacy-peer-deps
npm run build
  1. Esegui comando docker-compose

Su Host Windows:

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

Su Host Linux:

cd myems
docker-compose -f docker-compose-on-linux.yml up -d
  1. Verifica
IndirizzoRisultato atteso
myems-web192.168.0.1:80Login riuscito inserendo account e password
myems-admin192.168.0.1:8001Login riuscito inserendo account e password
myems-api192.168.0.1:8000/versionRestituisce informazioni versione
Informazioni

Se l'API segnala un errore, conferma se l'IP database, l'account database e la password database in .env sono corretti. Se non lo sono, modificali e poi esegui:

docker-compose up --build -d
Come risolvere problemi di timeout pull immagine

A causa di problemi di rete ISP, potresti riscontrare lentezza nel pull delle immagini. Puoi usare servizi di accelerazione di terze parti.