Ga naar de hoofdinhoud

Docker Compose

In deze handleiding implementeert u MyEMS met Docker Compose door alle services met één enkele opdracht te creëren en te starten.

Vereisten

  • Docker, docker-compose en npm zijn geïnstalleerd op de host.
  • MySQL-server is geïnstalleerd met de gebruikersnaam 'root' en het wachtwoord '!MyEMS1'.
  • De MySQL-database is bereikbaar vanaf de host waarop de Docker Engine draait.

Configuratie

Tip

Met 'host' wordt de server bedoeld waarop de docker engine draait. Het IP-adres en de accountgegevens worden aangenomen en gebruikt om de instructies te tonen. Pas deze aan naar uw situatie.

----
Host IP192.168.0.1
Database IP192.168.0.2
Database Gebruikerroot
Database Wachtwoord!MyEMS1

Installatie

  1. Repository klonen
git clone https://github.com/myems/myems.git
  1. Database schema importeren
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

Opmerking: Raadpleeg database voor meer details.

  1. Configuratie aanpassen
Tip

Er wordt aangenomen dat het host IP-adres 192.168.0.1 is, het database IP-adres 192.168.0.2 is, het databaseaccount: root is, en het databasewachtwoord: !MyEMS1 is. Pas deze waarden aan naar uw situatie.

3.1 API-adres aanpassen in nginx.conf

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

3.2 Kopieer example.env naar .env in elke map en pas het database IP-adres, de gebruikersnaam en het wachtwoord in .env aan

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 Uploadmap aanpassen in docker-compose.yml Bij een Windows-host gebruik je c:\upload voor volumes/source in de api- en admin-services. Bij een Linux-host gebruik je /upload voor volumes/source in de api- en admin-services. Zorg ervoor dat de uploadmappen in api en admin dezelfde map op de host zijn.

  1. Web UI bouwen

Configuratiebestand aanpassen:

Notitie

Verkrijg een mapboxToken via https://mapbox.com en stel vervolgens showOnlineMap op true in. Als u de online kaartfunctie wilt uitschakelen, stel showOnlineMap dan op false in.

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

Bouwen:

cd myems/myems-web
npm i --unsafe-perm=true --allow-root --legacy-peer-deps
npm run build
  1. Docker-compose opdracht uitvoeren

Op een Windows Host:

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

Op een Linux Host:

cd myems
docker-compose -f docker-compose-on-linux.yml up -d
  1. Verificatie
ServiceAdresVerwacht resultaat
myems-web192.168.0.1:80Inloggen geslaagd door account en wachtwoord in te voeren
myems-admin192.168.0.1:8001Inloggen geslaagd door account en wachtwoord in te voeren
myems-api192.168.0.1:8000/versionVersie-informatie wordt geretourneerd
Informatie

Als de API een foutmelding geeft, controleer dan of het database IP-adres, het databaseaccount en het databasewachtwoord in .env correct zijn. Zo niet, pas deze dan aan en voer vervolgens uit:

docker-compose up --build -d
Hoe u problemen met time-out bij het ophalen van images oplost

Vanwege netwerkproblemen van uw ISP kunt u te maken krijgen met traag ophalen van images. U kunt derdengene acceleratiediensten gebruiken.

Samenvatting

  1. Vereisten controleren: Zorg ervoor dat Docker, Docker Compose, npm en MySQL correct geïnstalleerd zijn en dat de MySQL-database bereikbaar is.
  2. Configuratie aanpassen: Pas het API-adres in nginx.conf en de databasegegevens in de .env-bestanden aan naar uw specifieke omgeving.
  3. Implementatie stappen: Clone de repository, importeer de database schema's, bouw de Web UI en start de services via Docker Compose.
  4. Verificatie en probleemoplossing: Controleer de toegang tot de Web UI, Admin UI en API, en pas de configuratie aan en herbouw de services indien nodig.