Podman sur Linux
Dans ce guide, vous allez déployer MyEMS avec Podman sur un système Linux.
Prérequis
- Podman et npm installés sur la machine hôte
- Serveur MySQL installé
- La base de données MySQL doit être accessible depuis la machine hôte sur laquelle fonctionne le moteur Podman
- Il est recommandé d'exécuter les commandes Podman avec des privilèges root
- Après l'installation de Podman, utilisez la commande
systemctl status podman-restart.servicepour vérifier si les conteneurs sont configurés pour le démarrage automatique et la politique associée. Si le messageUnit not founds'affiche, cela signifie que le conteneur ne pourra pas démarrer automatiquement
Étape 1 Base de données
Voir Base de données
Étape 2 myems-api
Dans cette section, vous allez installer myems-api sur Podman.
- Copier le code source dans le répertoire racine
cp -r myems/myems-api /
cd /myems-api
- Créer le fichier .env à partir du fichier example.env
Remplacer manuellement 127.0.0.1 par la véritable adresse IP de la machine hôte
cp example.env .env
- Construire l'image à partir du code source
podman build -t myems/myems-api .
Pour construire l'image pour plusieurs plateformes et non uniquement pour l'architecture et le système d'exploitation de la machine depuis laquelle la construction est lancée, vous pouvez utiliser buildx et ajouter l'option --platform pour spécifier la plateforme cible de la sortie (par exemple linux/amd64, linux/arm64 ou darwin/amd64)
podman buildx build --platform=linux/amd64 -t myems/myems-api .
- Lancer un conteneur Podman Sur la machine hôte, créer un dossier partagé pour les fichiers uploadés :
mkdir /myems-upload
Créer un conteneur, monter en liaison le dossier partagé dans le conteneur et monter également le fichier .env en liaison :
podman run -d -p 8000:8000 -v /myems-upload:/var/www/myems-admin/upload -v /myems-api/.env:/app/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-api myems/myems-api
- -d : Lancer le conteneur en arrière-plan et afficher son ID
- -p : Publier le ou les ports du conteneur sur la machine hôte ; 8000:8000 (Hôte:Conteneur) lie le port 8000 (droite) du conteneur au port TCP 8000 (gauche) de la machine hôte
- -v : Si vous utilisez -v ou --volume pour monter en liaison un fichier ou dossier qui n'existe pas encore sur l'hôte Podman, -v crée l'endpoint automatiquement (toujours en tant que dossier). L'option ro, si elle est présente, rend le montage en liaison accessible en lecture seule dans le conteneur. Pour les versions v4.7.0 ou antérieures, utilisez '/code/.env' à la place de '/app/.env'
- --log-opt max-size=2m : Taille maximale du journal avant rotation (entier positif suivi d'un indicateur d'unité : k, m ou g)
- --log-opt max-file=2 : Nombre maximal de fichiers journaux autorisés ; si la rotation crée trop de fichiers, le fichier le plus ancien est supprimé (entier positif)
- --restart : Politique de redémarrage appliquée lorsque le conteneur s'arrête
- --name : Attribuer un nom au conteneur
Le chemin absolu avant le deux-points correspond à la machine hôte (il peut varier selon votre système) ; le chemin absolu après le deux-points correspond au conteneur et ne peut pas être modifié. En passant le fichier .env en paramètre de montage en liaison, vous pourrez modifier ses valeurs de configuration ultérieurement. Si vous modifiez le fichier .env, redémarrez le conteneur pour que les changements prennent effet.
Si vous souhaitez migrer l'image vers un autre ordinateur :
- Exporter l'image dans un fichier tar
podman save --output myems-api.tar myems/myems-api
- Copier le fichier tar sur l'autre ordinateur, puis charger l'image depuis le fichier tar
podman load --input .\myems-api.tar
Étape 3 myems-admin
Dans cette section, vous allez installer myems-admin sur Podman.
- Copier le code source dans le répertoire racine
cp -r myems/myems-admin /
cd /myems-admin
Remplacer manuellement 127.0.0.1:8000 dans le fichier nginx.conf par la véritable adresse IP et le port de myems-api sur la machine hôte
nano nginx.conf
proxy_pass http://127.0.0.1:8000/;
- Construire l'image à partir du code source
podman build -t myems/myems-admin .
Pour construire l'image pour plusieurs plateformes et non uniquement pour l'architecture et le système d'exploitation de la machine depuis laquelle la construction est lancée, vous pouvez utiliser buildx et ajouter l'option --platform pour spécifier la plateforme cible de la sortie (par exemple linux/amd64, linux/arm64 ou darwin/amd64)
podman buildx build --platform=linux/amd64 -t myems/myems-admin .
- Lancer un conteneur Podman Sur la machine hôte, créer un dossier partagé pour les fichiers uploadés :
mkdir /myems-upload
Créer un conteneur, monter en liaison le dossier partagé pour les fichiers uploadés dans le conteneur et également monter le fichier nginx.conf en liaison :
podman run -d -p 8001:8001 -v /myems-upload:/var/www/myems-admin/upload -v /myems-admin/nginx.conf:/etc/nginx/nginx.conf:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-admin myems/myems-admin
- -d : Lancer le conteneur en arrière-plan et afficher son ID
- -p : Publier le ou les ports du conteneur sur la machine hôte ; 8001:8001 (Hôte:Conteneur) lie le port 8001 (droite) du conteneur au port TCP 8001 (gauche) de la machine hôte
- -v : Si vous utilisez -v ou --volume pour monter en liaison un fichier ou dossier qui n'existe pas encore sur l'hôte Podman, -v crée l'endpoint automatiquement (toujours en tant que dossier). L'option ro, si elle est présente, rend le montage en liaison accessible en lecture seule dans le conteneur. Pour les versions v4.7.0 ou antérieures, utilisez '/code/.env' à la place de '/app/.env'
- --log-opt max-size=2m : Taille maximale du journal avant rotation (entier positif suivi d'un indicateur d'unité : k, m ou g)
- --log-opt max-file=2 : Nombre maximal de fichiers journaux autorisés ; si la rotation crée trop de fichiers, le fichier le plus ancien est supprimé (entier positif)
- --restart : Politique de redémarrage appliquée lorsque le conteneur s'arrête
- --name : Attribuer un nom au conteneur
Si vous souhaitez migrer l'image vers un autre ordinateur :
- Exporter l'image dans un fichier tar
podman save --output myems-admin.tar myems/myems-admin
- Copier le fichier tar sur l'autre ordinateur, puis charger l'image depuis le fichier tar
podman load --input .\myems-admin.tar
Étape 4 myems-modbus-tcp
Dans cette section, vous allez installer myems-modbus-tcp sur Podman.
- Copier le code source dans le répertoire racine
cp -r myems/myems-modbus-tcp /
cd /myems-modbus-tcp
- Créer le fichier .env à partir du fichier example.env
Remplacer manuellement 127.0.0.1 par la véritable adresse IP de la machine hôte
cp example.env .env
- Construire l'image à partir du code source
podman build -t myems/myems-modbus-tcp .
Pour construire l'image pour plusieurs plateformes et non uniquement pour l'architecture et le système d'exploitation de la machine depuis laquelle la construction est lancée, vous pouvez utiliser buildx et ajouter l'option --platform pour spécifier la plateforme cible de la sortie (par exemple linux/amd64, linux/arm64 ou darwin/amd64)
podman buildx build --platform=linux/amd64 -t myems/myems-modbus-tcp .
- Lancer un conteneur Podman (en tant que superutilisateur)
podman run -d -v /myems-modbus-tcp/.env:/app/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-modbus-tcp myems/myems-modbus-tcp
- -d : Lancer le conteneur en arrière-plan et afficher son ID
- -v : Si vous utilisez -v ou --volume pour monter en liaison un fichier ou dossier qui n'existe pas encore sur l'hôte Podman, -v crée l'endpoint automatiquement (toujours en tant que dossier). L'option ro, si elle est présente, rend le montage en liaison accessible en lecture seule dans le conteneur. Pour les versions v4.7.0 ou antérieures, utilisez '/code/.env' à la place de '/app/.env'
- --log-opt max-size=2m : Taille maximale du journal avant rotation (entier positif suivi d'un indicateur d'unité : k, m ou g)
- --log-opt max-file=2 : Nombre maximal de fichiers journaux autorisés ; si la rotation crée trop de fichiers, le fichier le plus ancien est supprimé (entier positif)
- --restart : Politique de redémarrage appliquée lorsque le conteneur s'arrête
- --name : Attribuer un nom au conteneur
Le chemin absolu avant le deux-points correspond à la machine hôte (il peut varier selon votre système) ; le chemin absolu après le deux-points correspond au conteneur et ne peut pas être modifié. En passant le fichier .env en paramètre de montage en liaison, vous pourrez modifier ses valeurs de configuration ultérieurement. Si vous modifiez le fichier .env, redémarrez le conteneur pour que les changements prennent effet.
- Migrer le conteneur Podman Pour migrer le conteneur vers un autre ordinateur :
- Exporter l'image dans un fichier tar
podman save --output myems-modbus-tcp.tar myems/myems-modbus-tcp
- Copier le fichier tar sur l'autre ordinateur, puis charger l'image depuis le fichier tar
podman load --input .\myems-modbus-tcp.tar
Étape 5 myems-cleaning
Dans cette section, vous allez installer myems-cleaning sur Podman.
- Copier le code source dans le répertoire racine
cp -r myems/myems-cleaning /
cd /myems-cleaning
- Créer le fichier .env à partir du fichier example.env
Remplacer manuellement 127.0.0.1 par la véritable adresse IP de la machine hôte
cp example.env .env
- Construire l'image à partir du code source
podman build -t myems/myems-cleaning .
Pour construire l'image pour plusieurs plateformes et non uniquement pour l'architecture et le système d'exploitation de la machine depuis laquelle la construction est lancée, vous pouvez utiliser buildx et ajouter l'option --platform pour spécifier la plateforme cible de la sortie (par exemple linux/amd64, linux/arm64 ou darwin/amd64)
podman buildx build --platform=linux/amd64 -t myems/myems-cleaning .
- Lancer un conteneur Podman (en tant que superutilisateur)
podman run -d -v /myems-cleaning/.env:/app/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-cleaning myems/myems-cleaning
- -d : Lancer le conteneur en arrière-plan et afficher son ID
- -v : Si vous utilisez -v ou --volume pour monter en liaison un fichier ou dossier qui n'existe pas encore sur l'hôte Podman, -v crée l'endpoint automatiquement (toujours en tant que dossier). L'option ro, si elle est présente, rend le montage en liaison accessible en lecture seule dans le conteneur. Pour les versions v4.7.0 ou antérieures, utilisez '/code/.env' à la place de '/app/.env'
- --log-opt max-size=2m : Taille maximale du journal avant rotation (entier positif suivi d'un indicateur d'unité : k, m ou g)
- --log-opt max-file=2 : Nombre maximal de fichiers journaux autorisés ; si la rotation crée trop de fichiers, le fichier le plus ancien est supprimé (entier positif)
- --restart : Politique de redémarrage appliquée lorsque le conteneur s'arrête
- --name : Attribuer un nom au conteneur
Le chemin absolu avant le deux-points correspond à la machine hôte (il peut varier selon votre système) ; le chemin absolu après le deux-points correspond au conteneur et ne peut pas être modifié. En passant le fichier .env en paramètre de montage en liaison, vous pourrez modifier ses valeurs de configuration ultérieurement. Si vous modifiez le fichier .env, redémarrez le conteneur pour que les changements prennent effet.
- Migrer le conteneur Podman Pour migrer le conteneur vers un autre ordinateur :
- Exporter l'image dans un fichier tar
podman save --output myems-cleaning.tar myems/myems-cleaning
- Copier le fichier tar sur l'autre ordinateur, puis charger l'image depuis le fichier tar
podman load --input .\myems-cleaning.tar
Étape 6 myems-normalization
Dans cette section, vous allez installer myems-normalization sur Podman.
- Copier le code source dans le répertoire racine
cp -r myems/myems-normalization /
cd /myems-normalization
- Créer le fichier .env à partir du fichier example.env
Remplacer manuellement 127.0.0.1 par la véritable adresse IP de la machine hôte
cp example.env .env
- Construire l'image à partir du code source
podman build -t myems/myems-normalization .
Pour construire l'image pour plusieurs plateformes et non uniquement pour l'architecture et le système d'exploitation de la machine depuis laquelle la construction est lancée, vous pouvez utiliser buildx et ajouter l'option --platform pour spécifier la plateforme cible de la sortie (par exemple linux/amd64, linux/arm64 ou darwin/amd64)
podman buildx build --platform=linux/amd64 -t myems/myems-normalization .
- Lancer un conteneur Podman (en tant que superutilisateur)
podman run -d -v /myems-normalization/.env:/app/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-normalization myems/myems-normalization
- -d : Lancer le conteneur en arrière-plan et afficher son ID
- -v : Si vous utilisez -v ou --volume pour monter en liaison un fichier ou dossier qui n'existe pas encore sur l'hôte Podman, -v crée l'endpoint automatiquement (toujours en tant que dossier). L'option ro, si elle est présente, rend le montage en liaison accessible en lecture seule dans le conteneur. Pour les versions v4.7.0 ou antérieures, utilisez '/code/.env' à la place de '/app/.env'
- --log-opt max-size=2m : Taille maximale du journal avant rotation (entier positif suivi d'un indicateur d'unité : k, m ou g)
- --log-opt max-file=2 : Nombre maximal de fichiers journaux autorisés ; si la rotation crée trop de fichiers, le fichier le plus ancien est supprimé (entier positif)
- --restart : Politique de redémarrage appliquée lorsque le conteneur s'arrête
- --name : Attribuer un nom au conteneur
Le chemin absolu avant le deux-points correspond à la machine hôte (il peut varier selon votre système) ; le chemin absolu après le deux-points correspond au conteneur et ne peut pas être modifié. En passant le fichier .env en paramètre de montage en liaison, vous pourrez modifier ses valeurs de configuration ultérieurement. Si vous modifiez le fichier .env, redémarrez le conteneur pour que les changements prennent effet.
- Migrer le conteneur Podman Pour migrer le conteneur vers un autre ordinateur :
- Exporter l'image dans un fichier tar
podman save --output myems-normalization.tar myems/myems-normalization
- Copier le fichier tar sur l'autre ordinateur, puis charger l'image depuis le fichier tar
podman load --input .\myems-normalization.tar
Étape 7 myems-aggregation
Dans cette section, vous allez installer myems-aggregation sur Podman.
- Copier le code source dans le répertoire racine
cp -r myems/myems-aggregation /
cd /myems-aggregation
- Créer le fichier .env à partir du fichier example.env
cp example.env .env
Remplacer manuellement 127.0.0.1 par la véritable adresse IP de la machine hôte
- Construire l'image à partir du code source
podman build -t myems/myems-aggregation .
Pour construire l'image pour plusieurs plateformes et non uniquement pour l'architecture et le système d'exploitation de la machine depuis laquelle la construction est lancée, vous pouvez utiliser buildx et ajouter l'option --platform pour spécifier la plateforme cible de la sortie (par exemple linux/amd64, linux/arm64 ou darwin/amd64)
podman buildx build --platform=linux/amd64 -t myems/myems-aggregation .
- Lancer un conteneur Podman (en tant que superutilisateur)
podman run -d -v /myems-aggregation/.env:/app/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-aggregation myems/myems-aggregation
- -d : Lancer le conteneur en arrière-plan et afficher son ID
- -v : Si vous utilisez -v ou --volume pour monter en liaison un fichier ou dossier qui n'existe pas encore sur l'hôte Podman, -v crée l'endpoint automatiquement (toujours en tant que dossier). L'option ro, si elle est présente, rend le montage en liaison accessible en lecture seule dans le conteneur. Pour les versions v4.7.0 ou antérieures, utilisez '/code/.env' à la place de '/app/.env'
- --log-opt max-size=2m : Taille maximale du journal avant rotation (entier positif suivi d'un indicateur d'unité : k, m ou g)
- --log-opt max-file=2 : Nombre maximal de fichiers journaux autorisés ; si la rotation crée trop de fichiers, le fichier le plus ancien est supprimé (entier positif)
- --restart : Politique de redémarrage appliquée lorsque le conteneur s'arrête
- --name : Attribuer un nom au conteneur
Le chemin absolu avant le deux-points correspond à la machine hôte (il peut varier selon votre système) ; le chemin absolu après le deux-points correspond au conteneur et ne peut pas être modifié. En passant le fichier .env en paramètre de montage en liaison, vous pourrez modifier ses valeurs de configuration ultérieurement. Si vous modifiez le fichier .env, redémarrez le conteneur pour que les changements prennent effet.
- Migrer le conteneur Podman
- Exporter l'image dans un fichier tar
podman save --output myems-aggregation.tar myems/myems-aggregation
- Copier le fichier tar sur l'autre ordinateur, puis charger l'image depuis le fichier tar
podman load --input .\myems-aggregation.tar
Étape 8 myems-web
Dans cette section, vous allez installer myems-web sur Podman.
- Modifier le fichier config.js :
Obtenir le mapboxToken sur https://mapbox.com, puis définir showOnlineMap sur true. Pour désactiver la carte en ligne, mettre showOnlineMap sur false
cd myems/myems-web
nano src/config.js
Remplacer 127.0.0.1:8000 dans le fichier nginx.conf par la véritable adresse IP et le port de myems-api sur la machine hôte
cd myems/myems-web
nano nginx.conf
- Copier le code source dans le répertoire racine
cp -r myems/myems-web /
cd /myems-web
Vous pouvez ignorer sans risque la commande 'npm run build' dans cette section, car la construction est intégrée au Podmanfile
- Construire l'image à partir du code source
podman build -t myems/myems-web .
Pour construire l'image pour plusieurs plateformes et non uniquement pour l'architecture et le système d'exploitation de la machine depuis laquelle la construction est lancée, vous pouvez utiliser buildx et ajouter l'option --platform pour spécifier la plateforme cible de la sortie (par exemple linux/amd64, linux/arm64 ou darwin/amd64)
podman buildx build --platform=linux/amd64 -t myems/myems-web .
- Lancer un conteneur Podman Sur la machine hôte, monter le fichier nginx.conf en liaison :
podman run -d -p 80:80 -v /myems-web/nginx.conf:/etc/nginx/nginx.conf:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-web myems/myems-web
- -d : Lancer le conteneur en arrière-plan et afficher son ID
- -p : Publier le ou les ports du conteneur sur la machine hôte ; 80:80 (Hôte:Conteneur) lie le port 80 (droite) du conteneur au port TCP 80 (gauche) de la machine hôte
- -v : Si vous utilisez -v ou --volume pour monter en liaison un fichier ou dossier qui n'existe pas encore sur l'hôte Podman, -v crée l'endpoint automatiquement (toujours en tant que dossier). L'option ro, si elle est présente, rend le montage en liaison accessible en lecture seule dans le conteneur. Pour les versions v4.7.0 ou antérieures, utilisez '/code/.env' à la place de '/app/.env'
- --log-opt max-size=2m : Taille maximale du journal avant rotation (entier positif suivi d'un indicateur d'unité : k, m ou g)
- --log-opt max-file=2 : Nombre maximal de fichiers journaux autorisés ; si la rotation crée trop de fichiers, le fichier le plus ancien est supprimé (entier positif)
- --restart : Politique de redémarrage appliquée lorsque le conteneur s'arrête
- --name : Attribuer un nom au conteneur
Si vous souhaitez migrer l'image vers un autre ordinateur :
- Exporter l'image dans un fichier tar
podman save --output myems-web.tar myems/myems-web
- Copier le fichier tar sur l'autre ordinateur, puis charger l'image depuis le fichier tar
podman load --input .\myems-web.tar
Post-installation
Félicitations ! Vous pouvez désormais vous connecter aux interfaces MyEMS Admin et MyEMS Web.
Ports par défaut
MyEMS Web UI : 80 MyEMS API : 8000 MyEMS Admin UI : 8001
En supposant que l'adresse du serveur est 192.168.1.8 (remplacez par votre adresse réelle) Accéder à MyEMS Web UI : http://192.168.1.8 (le port 80 peut être omis) Accéder à MyEMS Admin UI : http://192.168.1.8:8001
Mot de passe par défaut
MyEMS Admin UI Identifiant :
administrator
Mot de passe :
!MyEMS1
MyEMS Web UI Identifiant :
administrator@myems.io
Mot de passe :
!MyEMS1