Zum Hauptinhalt springen

Docker Compose

In diesem Handbuch stellen Sie MyEMS mit Docker Compose bereit, indem Sie alle Dienste mit einem einzigen Befehl erstellen und starten.

Voraussetzungen

  • Docker, Docker-Compose und npm sind auf dem Host installiert.
  • MySQL-Server mit Benutzernamen „root“ und Passwort „!MyEMS1“ ist installiert.
  • Auf dem MySQL-Datenbank kann von dem Host, auf dem die Docker-Engine läuft, zugegriffen werden.

Konfiguration

Tipp

Der Host bezieht sich auf den Server, auf dem die Docker-Engine läuft. IP-Adresse sowie Zugangsdaten werden angenommen und zur Veranschaulichung verwendet. Bitte passen Sie sie entsprechend an.

----
Host-IP192.168.0.1
Datenbank-IP192.168.0.2
Datenbank-Benutzerroot
Datenbank-Passwort!MyEMS1

Installation

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

Hinweis: Siehe Datenbank

  1. Konfiguration bearbeiten
Tipp

Es wird angenommen, dass die Host-IP 192.168.0.1, die Datenbank-IP 192.168.0.2, der Datenbankbenutzer root und das Datenbankpasswort !MyEMS1 lautet. Bitte passen Sie diese Werte entsprechend an.

3.1 API-Adresse in nginx.conf bearbeiten

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

3.2 example.env in jedem Ordner zu .env kopieren und Datenbank-IP, Benutzernamen sowie Passwort in .env bearbeiten

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-Ordner in docker-compose.yml bearbeiten Bei Windows-Host verwenden Sie c:\upload als Volumes-Quelle für API- und Admin-Dienste. Bei Linux-Host verwenden Sie /upload als Volumes-Quelle für API- und Admin-Dienste. Stellen Sie sicher, dass die Upload-Ordner für API und Admin auf dem Host denselben Ordner sind.

  1. Web UI erstellen Konfigurationsdatei bearbeiten:
Hinweis

Holen Sie sich einen MapboxToken unter https://mapbox.com und setzen Sie anschließend showOnlineMap auf true. Wenn Sie die Online-Kartenfunktion deaktivieren möchten, setzen Sie showOnlineMap auf false.

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

Erstellen:

cd myems/myems-web
npm i --unsafe-perm=true --allow-root --legacy-peer-deps
npm run build
  1. Docker-Compose-Befehl ausführen Auf Windows-Host:
cd myems
docker-compose -f docker-compose-on-windows.yml up -d

Auf Linux-Host:

cd myems
docker-compose -f docker-compose-on-linux.yml up -d
  1. Überprüfung | Dienst | Adresse | Erwartetes Ergebnis | | ----------- | ----------------------- | ------------------- | | myems-web | 192.168.0.1:80 | Erfolgreiche Anmeldung nach Eingabe von Zugangsdaten | | myems-admin | 192.168.0.1:8001 | Erfolgreiche Anmeldung nach Eingabe von Zugangsdaten | | myems-api | 192.168.0.1:8000/version| Rückgabe von Versionsinformationen |
Info

Falls die API einen Fehler meldet, überprüfen Sie, ob Datenbank-IP, Datenbankbenutzer und Datenbankpasswort in .env korrekt sind. Falls nicht, bearbeiten Sie sie und führen Sie anschließend folgenden Befehl aus:

docker-compose up --build -d
Behebung von Timeout-Problemen beim Image-Pull

Aufgrund von Netzwerkproblemen des Internetanbieters kann das Herunterladen von Images langsam erfolgen. Sie können hierfür Drittanbieter-Beschleunigungsdienste nutzen.