Aller au contenu principal

Docker Compose

Dans ce guide, vous allez déployer MyEMS avec Docker Compose, en créant et en démarrant tous les services avec une seule commande.

Prérequis

  • Docker, Docker Compose et npm installés sur l'hôte.
  • Serveur MySQL installé avec l'identifiant « root » et le mot de passe « !MyEMS1 ».
  • La base de données MySQL doit être accessible depuis l'hôte sur lequel fonctionne le moteur Docker.

Configuration

Astuce

L'hôte désigne le serveur sur lequel le moteur Docker fonctionne. L'adresse IP, le compte et le mot de passe sont donnés à titre d'exemple pour illustrer les instructions. Veuillez les adapter selon votre configuration.

ÉlémentValeur
Adresse IP de l'hôte192.168.0.1
Adresse IP de la DB192.168.0.2
Utilisateur de la DBroot
Mot de passe de la DB!MyEMS1

Installation

  1. Cloner le dépôt
git clone https://github.com/myems/myems.git
  1. Importer le schéma de la base de données
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

Remarque : Se référer à la section Base de données

  1. Modifier la configuration
Astuce

Nous supposons que l'adresse IP de l'hôte est 192.168.0.1, l'adresse IP de la base de données est 192.168.0.2, le compte de la base de données est « root » et le mot de passe est « !MyEMS1 ». Veuillez les adapter selon votre configuration.

3.1 Modifier l'adresse de l'API dans les fichiers nginx.conf

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

3.2 Copier le fichier example.env en .env dans chaque dossier, puis modifier l'adresse IP, l'utilisateur et le mot de passe de la base de données dans le fichier .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 Modifier le dossier de téléchargement dans docker-compose.yml Si l'hôte est Windows, utiliser c:\upload comme source des volumes pour les services api et admin. Si l'hôte est Linux, utiliser /upload comme source des volumes pour les services api et admin. Veillez à ce que les dossiers de téléchargement des services api et admin correspondent au même dossier sur l'hôte.

  1. Construire l'interface Web Modifier le fichier de configuration :
Note

Obtenir le mapboxToken sur le site https://mapbox.com, puis définir showOnlineMap sur true. Si vous souhaitez désactiver la fonction de carte en ligne, définir showOnlineMap sur false.

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

Construire le projet :

cd myems/myems-web
npm i --unsafe-perm=true --allow-root --legacy-peer-deps
npm run build
  1. Exécuter la commande docker-compose Sur hôte Windows :
cd myems
docker-compose -f docker-compose-on-windows.yml up -d

Sur hôte Linux :

cd myems
docker-compose -f docker-compose-on-linux.yml up -d
  1. Vérification
ServiceAdresseRésultat attendu
myems-web192.168.0.1:80Connexion réussie en saisissant identifiant et mot de passe
myems-admin192.168.0.1:8001Connexion réussie en saisissant identifiant et mot de passe
myems-api192.168.0.1:8000/versionRenvoi des informations de version
Informations

Si l'API retourne une erreur, vérifiez que l'adresse IP, l'utilisateur et le mot de passe de la base de données dans le fichier .env sont corrects. Si ce n'est pas le cas, modifiez-les puis exécutez la commande suivante :

docker-compose up --build -d
Comment résoudre les problèmes de délai d'attente lors du téléchargement des images

En raison de problèmes de réseau de votre fournisseur d'accès internet, le téléchargement des images peut être lent. Vous pouvez utiliser des services d'accélération tiers.