Podman op Linux
In deze handleiding implementeert u MyEMS met Podman op een Linux-systeem.
Vereisten
- Podman en npm zijn geïnstalleerd op de host.
- MySQL-server is geïnstalleerd.
- De MySQL-database is bereikbaar vanaf de host waarop de Podman Engine draait.
-
Het wordt aanbevolen om podman-opdrachten uit te voeren met rootrechten.
-
Na installatie van podman controleer je met de opdracht
systemctl status podman-restart.serviceof de containers zijn geconfigureerd voor automatisch opstarten en het juiste beleid. Als erUnit not foundwordt weergegeven, betekent dit dat de container niet automatisch opstart.
Stap 1 Database
Zie Database
Stap 2 myems-api
In deze sectie installeer je myems-api op Podman.
- Broncode kopiëren naar de rootdirectory
cp -r myems/myems-api /
cd /myems-api
- .env-bestand aanmaken op basis van het example.env-bestand
Vervang handmatig 127.0.0.1 door het echte HOST IP-adres.
cp example.env .env
- Image bouwen vanuit de broncode
podman build -t myems/myems-api .
Als je voor meerdere platforms wilt bouwen (niet alleen voor de architectuur en besturingssysteem waarop de gebruiker die de build opstart draait): Je kunt buildx gebruiken en de vlag --platform instellen om het doelplatform voor de build-output op te geven (bijvoorbeeld linux/amd64, linux/arm64 of darwin/amd64).
podman buildx build --platform=linux/amd64 -t myems/myems-api .
- Podman-container uitvoeren
Op de host, een gedeelde uploadmap aanmaken:
mkdir /myems-upload
Een container aanmaken, de gedeelde map koppelen (bind-mount) aan de container, en ook het .env-bestand koppelen aan de container:
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 Container uitvoeren in de achtergrond en container-ID weergeven
-
-p Publiceer de poort(en) van een container naar de host; 8000:8000 (Host:Container) koppelt poort 8000 (rechts) van de container aan TCP-poort 8000 (links) van de hostmachine.
-
-v Als je -v of --volume gebruikt om een bestand of directory te koppelen (bind-mounten) dat nog niet bestaat op de Podman-host, creëert -v het eindpunt voor je. Het wordt altijd aangemaakt als een directory. De ro-optie (indien aanwezig) zorgt ervoor dat de bind-mount alleen-lezen wordt gemount in de container. Voor versies v4.7.0 of ouder gebruik je '/code/.env' in plaats van '/app/.env'.
-
--log-opt max-size=2m De maximale grootte van het logbestand voordat het wordt gerold. Een positief geheel getal plus een modifier die de meeteenheid voorstelt (k, m of g).
-
--log-opt max-file=2 Het maximale aantal logbestanden dat aanwezig mag zijn. Als het rollen van de logs te veel bestanden aanmaakt, wordt het oudste bestand verwijderd. Een positief geheel getal.
-
--restart Beleid voor opnieuw opstarten dat toegepast wordt wanneer een container stopt
-
--name Een naam toewijzen aan de container
Het absolute pad vóór de dubbele punt is het pad op de host en dit kan verschillen op jouw systeem. Het absolute pad na de dubbele punt is het pad in de container en dit MAG NIET worden gewijzigd. Door .env als bind-mount parameter door te geven, kun je later de configuratiewaarden wijzigen. Als je het .env-bestand hebt gewijzigd, start je de container opnieuw op om de wijziging van kracht te laten worden.
Als je de image wilt migreren naar een andere computer:
- Image exporteren naar een tarball-bestand
podman save --output myems-api.tar myems/myems-api
- Het tarball-bestand kopiëren naar een andere computer en vervolgens de image laden vanuit het tarball-bestand
podman load --input ./myems-api.tar
Stap 3 myems-admin
In deze sectie installeer je myems-admin op Podman.
- Broncode kopiëren naar de rootdirectory
cp -r myems/myems-admin /
cd /myems-admin
Vervang handmatig 127.0.0.1:8000 in nginx.conf door het werkelijke HOST ip-adres en de poort van myems-api
nano nginx.conf
proxy_pass http://127.0.0.1:8000/;
- Image bouwen vanuit de broncode
podman build -t myems/myems-admin .
Als je voor meerdere platforms wilt bouwen (niet alleen voor de architectuur en besturingssysteem waarop de gebruiker die de build opstart draait): Je kunt buildx gebruiken en de vlag --platform instellen om het doelplatform voor de build-output op te geven (bijvoorbeeld linux/amd64, linux/arm64 of darwin/amd64).
podman buildx build --platform=linux/amd64 -t myems/myems-admin .
- Podman-container uitvoeren
Op de host, een gedeelde uploadmap aanmaken:
mkdir /myems-upload
Een container aanmaken, de gedeelde uploadmap koppelen aan de container en ook nginx.conf koppelen:
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 Container uitvoeren in de achtergrond en container-ID weergeven
-
-p Publiceer de poort(en) van een container naar de host; 8001:8001 (Host:Container) koppelt poort 8001 (rechts) van de container aan TCP-poort 8001 (links) van de hostmachine.
-
-v Als je -v of --volume gebruikt om een bestand of directory te koppelen (bind-mounten) dat nog niet bestaat op de Podman-host, creëert -v het eindpunt voor je. Het wordt altijd aangemaakt als een directory. De ro-optie (indien aanwezig) zorgt ervoor dat de bind-mount alleen-lezen wordt gemount in de container. Voor versies v4.7.0 of ouder gebruik je '/code/.env' in plaats van '/app/.env'.
-
--log-opt max-size=2m De maximale grootte van het logbestand voordat het wordt gerold. Een positief geheel getal plus een modifier die de meeteenheid voorstelt (k, m of g).
-
--log-opt max-file=2 Het maximale aantal logbestanden dat aanwezig mag zijn. Als het rollen van de logs te veel bestanden aanmaakt, wordt het oudste bestand verwijderd. Een positief geheel getal.
-
--restart Beleid voor opnieuw opstarten dat toegepast wordt wanneer een container stopt
-
--name Een naam toewijzen aan de container
Als je de image wilt migreren naar een andere computer:
- Image exporteren naar een tarball-bestand
podman save --output myems-admin.tar myems/myems-admin
- Het tarball-bestand kopiëren naar een andere computer en vervolgens de image laden vanuit het tarball-bestand
podman load --input ./myems-admin.tar
Stap 4 myems-modbus-tcp
In deze sectie installeer je myems-modbus-tcp op Podman.
- Broncode kopiëren naar de rootdirectory
cp -r myems/myems-modbus-tcp /
cd /myems-modbus-tcp
- .env-bestand aanmaken op basis van het example.env-bestand
Vervang handmatig 127.0.0.1 door het echte HOST IP-adres.
cp example.env .env
- Image bouwen vanuit de broncode
podman build -t myems/myems-modbus-tcp .
Als je voor meerdere platforms wilt bouwen (niet alleen voor de architectuur en besturingssysteem waarop de gebruiker die de build opstart draait): Je kunt buildx gebruiken en de vlag --platform instellen om het doelplatform voor de build-output op te geven (bijvoorbeeld linux/amd64, linux/arm64 of darwin/amd64).
podman buildx build --platform=linux/amd64 -t myems/myems-modbus-tcp .
- Podman-container uitvoeren (uitvoeren als superuser)
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 Container uitvoeren in de achtergrond en container-ID weergeven
-
-v Als je -v of --volume gebruikt om een bestand of directory te koppelen (bind-mounten) dat nog niet bestaat op de Podman-host, creëert -v het eindpunt voor je. Het wordt altijd aangemaakt als een directory. De ro-optie (indien aanwezig) zorgt ervoor dat de bind-mount alleen-lezen wordt gemount in de container. Voor versies v4.7.0 of ouder gebruik je '/code/.env' in plaats van '/app/.env'.
-
--log-opt max-size=2m De maximale grootte van het logbestand voordat het wordt gerold. Een positief geheel getal plus een modifier die de meeteenheid voorstelt (k, m of g).
-
--log-opt max-file=2 Het maximale aantal logbestanden dat aanwezig mag zijn. Als het rollen van de logs te veel bestanden aanmaakt, wordt het oudste bestand verwijderd. Een positief geheel getal.
-
--restart Beleid voor opnieuw opstarten dat toegepast wordt wanneer een container stopt
-
--name Een naam toewijzen aan de container
Het absolute pad vóór de dubbele punt is het pad op de host en dit kan verschillen op jouw systeem. Het absolute pad na de dubbele punt is het pad in de container en dit MAG NIET worden gewijzigd. Door .env als bind-mount parameter door te geven, kun je later de configuratiewaarden wijzigen. Als je het .env-bestand hebt gewijzigd, start je de container opnieuw op om de wijziging van kracht te laten worden.
- Podman-container migreren
Om de container naar een andere computer te migreren:
- Image exporteren naar een tarball-bestand
podman save --output myems-modbus-tcp.tar myems/myems-modbus-tcp
- Het tarball-bestand kopiëren naar een andere computer en vervolgens de image laden vanuit het tarball-bestand
podman load --input ./myems-modbus-tcp.tar
Stap 5 myems-cleaning
In deze sectie installeer je myems-cleaning op Podman.
- Broncode kopiëren naar de rootdirectory
cp -r myems/myems-cleaning /
cd /myems-cleaning
- .env-bestand aanmaken op basis van het example.env-bestand
Vervang handmatig 127.0.0.1 door het echte HOST IP-adres.
cp example.env .env
- Image bouwen vanuit de broncode
podman build -t myems/myems-cleaning .
Als je voor meerdere platforms wilt bouwen (niet alleen voor de architectuur en besturingssysteem waarop de gebruiker die de build opstart draait): Je kunt buildx gebruiken en de vlag --platform instellen om het doelplatform voor de build-output op te geven (bijvoorbeeld linux/amd64, linux/arm64 of darwin/amd64).
podman buildx build --platform=linux/amd64 -t myems/myems-cleaning .
- Podman-container uitvoeren (uitvoeren als superuser)
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 Container uitvoeren in de achtergrond en container-ID weergeven
-
-v Als je -v of --volume gebruikt om een bestand of directory te koppelen (bind-mounten) dat nog niet bestaat op de Podman-host, creëert -v het eindpunt voor je. Het wordt altijd aangemaakt als een directory. De ro-optie (indien aanwezig) zorgt ervoor dat de bind-mount alleen-lezen wordt gemount in de container. Voor versies v4.7.0 of ouder gebruik je '/code/.env' in plaats van '/app/.env'.
-
--log-opt max-size=2m De maximale grootte van het logbestand voordat het wordt gerold. Een positief geheel getal plus een modifier die de meeteenheid voorstelt (k, m of g).
-
--log-opt max-file=2 Het maximale aantal logbestanden dat aanwezig mag zijn. Als het rollen van de logs te veel bestanden aanmaakt, wordt het oudste bestand verwijderd. Een positief geheel getal.
-
--restart Beleid voor opnieuw opstarten dat toegepast wordt wanneer een container stopt
-
--name Een naam toewijzen aan de container
Het absolute pad vóór de dubbele punt is het pad op de host en dit kan verschillen op jouw systeem. Het absolute pad na de dubbele punt is het pad in de container en dit MAG NIET worden gewijzigd. Door .env als bind-mount parameter door te geven, kun je later de configuratiewaarden wijzigen. Als je het .env-bestand hebt gewijzigd, start je de container opnieuw op om de wijziging van kracht te laten worden.
- Podman-container migreren
Om de container naar een andere computer te migreren:
- Image exporteren naar een tarball-bestand
podman save --output myems-cleaning.tar myems/myems-cleaning
- Het tarball-bestand kopiëren naar een andere computer en vervolgens de image laden vanuit het tarball-bestand
podman load --input ./myems-cleaning.tar
Stap 6 myems-normalization
In deze sectie installeer je myems-normalization op Podman.
- Broncode kopiëren naar de rootdirectory
cp -r myems/myems-normalization /
cd /myems-normalization
- .env-bestand aanmaken op basis van het example.env-bestand
Vervang handmatig 127.0.0.1 door het echte HOST IP-adres.
cp example.env .env
- Image bouwen vanuit de broncode
podman build -t myems/myems-normalization .
Als je voor meerdere platforms wilt bouwen (niet alleen voor de architectuur en besturingssysteem waarop de gebruiker die de build opstart draait): Je kunt buildx gebruiken en de vlag --platform instellen om het doelplatform voor de build-output op te geven (bijvoorbeeld linux/amd64, linux/arm64 of darwin/amd64).
podman buildx build --platform=linux/amd64 -t myems/myems-normalization .
- Podman-container uitvoeren (uitvoeren als superuser)
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 Container uitvoeren in de achtergrond en container-ID weergeven
-
-v Als je -v of --volume gebruikt om een bestand of directory te koppelen (bind-mounten) dat nog niet bestaat op de Podman-host, creëert -v het eindpunt voor je. Het wordt altijd aangemaakt als een directory. De ro-optie (indien aanwezig) zorgt ervoor dat de bind-mount alleen-lezen wordt gemount in de container. Voor versies v4.7.0 of ouder gebruik je '/code/.env' in plaats van '/app/.env'.
-
--log-opt max-size=2m De maximale grootte van het logbestand voordat het wordt gerold. Een positief geheel getal plus een modifier die de meeteenheid voorstelt (k, m of g).
-
--log-opt max-file=2 Het maximale aantal logbestanden dat aanwezig mag zijn. Als het rollen van de logs te veel bestanden aanmaakt, wordt het oudste bestand verwijderd. Een positief geheel getal.
-
--restart Beleid voor opnieuw opstarten dat toegepast wordt wanneer een container stopt
-
--name Een naam toewijzen aan de container
Het absolute pad vóór de dubbele punt is het pad op de host en dit kan verschillen op jouw systeem. Het absolute pad na de dubbele punt is het pad in de container en dit MAG NIET worden gewijzigd. Door .env als bind-mount parameter door te geven, kun je later de configuratiewaarden wijzigen. Als je het .env-bestand hebt gewijzigd, start je de container opnieuw op om de wijziging van kracht te laten worden.
- Podman-container migreren
Om de container naar een andere computer te migreren:
- Image exporteren naar een tarball-bestand
podman save --output myems-normalization.tar myems/myems-normalization
- Het tarball-bestand kopiëren naar een andere computer en vervolgens de image laden vanuit het tarball-bestand
podman load --input ./myems-normalization.tar
Stap 7 myems-aggregation
In deze sectie installeer je myems-aggregation op Podman.
- Broncode kopiëren naar de rootdirectory
cp -r myems/myems-aggregation /
cd /myems-aggregation
- .env-bestand aanmaken op basis van het example.env-bestand
cp example.env .env
Vervang handmatig 127.0.0.1 door het echte HOST IP-adres.
- Image bouwen vanuit de broncode
podman build -t myems/myems-aggregation .
Als je voor meerdere platforms wilt bouwen (niet alleen voor de architectuur en besturingssysteem waarop de gebruiker die de build opstart draait): Je kunt buildx gebruiken en de vlag --platform instellen om het doelplatform voor de build-output op te geven (bijvoorbeeld linux/amd64, linux/arm64 of darwin/amd64).
podman buildx build --platform=linux/amd64 -t myems/myems-aggregation .
- Podman-container uitvoeren (uitvoeren als superuser)
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 Container uitvoeren in de achtergrond en container-ID weergeven
-
-v Als je -v of --volume gebruikt om een bestand of directory te koppelen (bind-mounten) dat nog niet bestaat op de Podman-host, creëert -v het eindpunt voor je. Het wordt altijd aangemaakt als een directory. De ro-optie (indien aanwezig) zorgt ervoor dat de bind-mount alleen-lezen wordt gemount in de container. Voor versies v4.7.0 of ouder gebruik je '/code/.env' in plaats van '/app/.env'.
-
--log-opt max-size=2m De maximale grootte van het logbestand voordat het wordt gerold. Een positief geheel getal plus een modifier die de meeteenheid voorstelt (k, m of g).
-
--log-opt max-file=2 Het maximale aantal logbestanden dat aanwezig mag zijn. Als het rollen van de logs te veel bestanden aanmaakt, wordt het oudste bestand verwijderd. Een positief geheel getal.
-
--restart Beleid voor opnieuw opstarten dat toegepast wordt wanneer een container stopt
-
--name Een naam toewijzen aan de container
Het absolute pad vóór de dubbele punt is het pad op de host en dit kan verschillen op jouw systeem. Het absolute pad na de dubbele punt is het pad in de container en dit MAG NIET worden gewijzigd. Door .env als bind-mount parameter door te geven, kun je later de configuratiewaarden wijzigen. Als je het .env-bestand hebt gewijzigd, start je de container opnieuw op om de wijziging van kracht te laten worden.
-
Podman-container migreren
-
Image exporteren naar een tarball-bestand
podman save --output myems-aggregation.tar myems/myems-aggregation
- Het tarball-bestand kopiëren naar een andere computer en vervolgens de image laden vanuit het tarball-bestand
podman load --input ./myems-aggregation.tar
Stap 8 myems-web
In deze sectie installeer je myems-web op Podman.
- Config.js-bestand aanpassen:
Verkrijg een mapboxToken op https://mapbox.com en stel vervolgens showOnlineMap in op true. Als je de online kaartfunctie wilt uitschakelen, stel je showOnlineMap in op false.
cd myems/myems-web
nano src/config.js
Vervang 127.0.0.1:8000 in nginx.conf door het echte HOST ip-adres en de poort van myems-api
cd myems/myems-web
nano nginx.conf
- Broncode kopiëren naar de rootdirectory
cp -r myems/myems-web /
cd /myems-web
Je kunt de opdracht 'npm run build' in deze sectie veilig negeren, omdat deze al in de Podmanfile is opgenomen.
- Image bouwen vanuit de broncode
podman build -t myems/myems-web .
Als je voor meerdere platforms wilt bouwen (niet alleen voor de architectuur en besturingssysteem waarop de gebruiker die de build opstart draait): Je kunt buildx gebruiken en de vlag --platform instellen om het doelplatform voor de build-output op te geven (bijvoorbeeld linux/amd64, linux/arm64 of darwin/amd64).
podman buildx build --platform=linux/amd64 -t myems/myems-web .
- Podman-container uitvoeren
Op de host, nginx.conf koppelen (bind-mounten):
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 Container uitvoeren in de achtergrond en container-ID weergeven
-
-p Publiceer de poort(en) van een container naar de host; 80:80 (Host:Container) koppelt poort 80 (rechts) van de container aan TCP-poort 80 (links) van de hostmachine.
-
-v Als je -v of --volume gebruikt om een bestand of directory te koppelen (bind-mounten) dat nog niet bestaat op de Podman-host, creëert -v het eindpunt voor je. Het wordt altijd aangemaakt als een directory. De ro-optie (indien aanwezig) zorgt ervoor dat de bind-mount alleen-lezen wordt gemount in de container. Voor versies v4.7.0 of ouder gebruik je '/code/.env' in plaats van '/app/.env'.
-
--log-opt max-size=2m De maximale grootte van het logbestand voordat het wordt gerold. Een positief geheel getal plus een modifier die de meeteenheid voorstelt (k, m of g).
-
--log-opt max-file=2 Het maximale aantal logbestanden dat aanwezig mag zijn. Als het rollen van de logs te veel bestanden aanmaakt, wordt het oudste bestand verwijderd. Een positief geheel getal.
-
--restart Beleid voor opnieuw opstarten dat toegepast wordt wanneer een container stopt
-
--name Een naam toewijzen aan de container
Als je de image wilt migreren naar een andere computer:
- Image exporteren naar een tarball-bestand
podman save --output myems-web.tar myems/myems-web
- Het tarball-bestand kopiëren naar een andere computer en vervolgens de image laden vanuit het tarball-bestand
podman load --input ./myems-web.tar
Na installatie
Gefeliciteerd! Je kunt nu inloggen op de MyEMS Admin UI en Web UI.
Standaardpoorten
MyEMS Web UI: 80
MyEMS API: 8000
MyEMS Admin UI: 8001
Als ervan wordt uitgegaan dat het serveradres 192.168.1.8 is (vervang dit door het werkelijke serveradres): Toegang tot MyEMS Web UI op http://192.168.1.8 (poort 80 kan worden weggelaten) Toegang tot MyEMS Admin UI op http://192.168.1.8:8001
Standaardwachtwoorden
MyEMS Admin UI
Gebruikersnaam:
administrator
Wachtwoord:
!MyEMS1
MyEMS Web UI
Gebruikersnaam:
administrator@myems.io
Wachtwoord:
!MyEMS1