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
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ément | Valeur |
|---|---|
| Adresse IP de l'hôte | 192.168.0.1 |
| Adresse IP de la DB | 192.168.0.2 |
| Utilisateur de la DB | root |
| Mot de passe de la DB | !MyEMS1 |
Installation
- Cloner le dépôt
git clone https://github.com/myems/myems.git
- 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
- Modifier la configuration
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.
- Construire l'interface Web Modifier le fichier de configuration :
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
- 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
- Vérification
| Service | Adresse | Résultat attendu |
|---|---|---|
| myems-web | 192.168.0.1:80 | Connexion réussie en saisissant identifiant et mot de passe |
| myems-admin | 192.168.0.1:8001 | Connexion réussie en saisissant identifiant et mot de passe |
| myems-api | 192.168.0.1:8000/version | Renvoi des informations de version |
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
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.