Docker op Windows
In deze handleiding implementeert u MyEMS met Docker op Windows.
Vereisten
- Geïnstalleerde docker, npm op de host.
- Geïnstalleerde MySQL server.
- De MySQL-database kan worden verbonden vanaf de host waarop de Docker Engine draait.
- Hardwarevereisten: Minimaal 4GB RAM, 20GB opslagruimte (database en Docker container).
Kloon broncode:
cd ~
git clone https://github.com/myems/myems
Stap 1 Database
Zie Database
Stap 2 myems-api
In deze sectie installeert u myems-api op Docker.
- Kopieer broncode naar hoofdmap
cp -r myems/myems-api c:\
cd c:\myems-api
- Maak .env bestand op basis van example.env bestand
Vervang handmatig 127.0.0.1 met echt HOST IP adres.
cp example.env .env
- Bouw Image vanuit Broncode
docker build -t myems/myems-api .
Om voor meerdere platforms te bouwen en niet alleen voor de architectuur en het besturingssysteem waarop de gebruiker die de build aanroept toevallig draait. U kunt buildx gebruiken en de --platform vlag instellen om het doelplatform voor de build output te specificeren, (bijvoorbeeld linux/amd64, linux/arm64, of darwin/amd64).
docker buildx build --platform=linux/amd64 -t myems/myems-api .
- Draai een Docker container
Op de host, maak een map aan op c:\myems-upload, en bind-mount deze naar de container, en bind-mount ook het .env bestand naar de container:
docker run -d -p 8000:8000 -v c:\myems-upload:/var/www/myems-admin/upload -v c:\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 Draai container op de achtergrond en print container ID
-
-p Publiceer een poort van de container naar de host, 8000:8000 (Host:Container) bindt poort 8000 (rechts) van de container aan TCP poort 8000 (links) van de host machine.
-
-v Als u -v of --volume gebruikt om een bestand of map die nog niet bestaat op de Docker host te bind-mounten, -v maakt het eindpunt voor u aan. Het wordt altijd aangemaakt als een map. De ro optie, indien aanwezig, zorgt ervoor dat de bind-mount als alleen-lezen in de container wordt gemount. Voor versie 4.7.0 of eerder, gebruik '/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 vertegenwoordigt (k, m, of g).
-
--log-opt max-file=2 Het maximale aantal logbestanden dat aanwezig kan zijn. Als het rollen van de logs overmatige bestanden creëert, wordt het oudste bestand verwijderd. Een positief geheel getal.
-
--restart Herstartbeleid dat moet worden toegepast wanneer een container stopt
-
--name Wijs een naam toe aan de container
Het absolute pad vóór de dubbele punt is voor het pad op de host en dat kan variëren op uw systeem. Het absolute pad na de dubbele punt is voor het pad op de container en dat kan NIET worden gewijzigd. Door .env door te geven als bind-mount parameter, kunt u later de configuratiewaarden wijzigen. Als u het .env bestand heeft gewijzigd, herstart de container om de wijziging effectief te maken.
Als u de image naar een andere computer wilt migreren,
- Exporteer image naar tarball bestand
docker save --output myems-api.tar myems/myems-api
- Kopieer het tarball bestand naar een andere computer, en laad dan de image vanuit het tarball bestand
docker load --input .\myems-api.tar
Stap 3 myems-admin
In deze sectie installeert u myems-admin op Docker.
- Kopieer broncode naar hoofdmap
cp -r myems/myems-admin c:\
cd c:\myems-admin
Vervang handmatig 127.0.0.1:8000 in nginx.conf met echt HOST IP adres en poort van myems-api
notepad nginx.conf
proxy_pass http://127.0.0.1:8000/;
- Bouw Image vanuit Broncode
docker build -t myems/myems-admin .
Om voor meerdere platforms te bouwen en niet alleen voor de architectuur en het besturingssysteem waarop de gebruiker die de build aanroept toevallig draait. U kunt buildx gebruiken en de --platform vlag instellen om het doelplatform voor de build output te specificeren, (bijvoorbeeld linux/amd64, linux/arm64, of darwin/amd64).
docker buildx build --platform=linux/amd64 -t myems/myems-admin .
- Draai een Docker container
Op de host, maak een map aan op c:\myems-upload, en bind-mount deze naar de container, en bind-mount ook het nginx.conf bestand naar de container: -v parameter voor upload map moet hetzelfde zijn als die in myems-api
docker run -d -p 8001:8001 -v c:\myems-upload:/var/www/myems-admin/upload -v c:\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 Draai container op de achtergrond en print container ID
-
-p Publiceer een poort van de container naar de host, 8001:8001 (Host:Container) bindt poort 8001 (rechts) van de container aan TCP poort 8001 (links) van de host machine.
-
-v Als u -v of --volume gebruikt om een bestand of map die nog niet bestaat op de Docker host te bind-mounten, -v maakt het eindpunt voor u aan. Het wordt altijd aangemaakt als een map. De ro optie, indien aanwezig, zorgt ervoor dat de bind-mount als alleen-lezen in de container wordt gemount. Voor versie 4.7.0 of eerder, gebruik '/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 vertegenwoordigt (k, m, of g).
-
--log-opt max-file=2 Het maximale aantal logbestanden dat aanwezig kan zijn. Als het rollen van de logs overmatige bestanden creëert, wordt het oudste bestand verwijderd. Een positief geheel getal.
-
--restart Herstartbeleid dat moet worden toegepast wanneer een container stopt
-
--name Wijs een naam toe aan de container
Als u de image naar een andere computer wilt migreren,
- Exporteer image naar tarball bestand
docker save --output myems-admin.tar myems/myems-admin
- Kopieer het tarball bestand naar een andere computer, en laad dan de image vanuit het tarball bestand
docker load --input .\myems-admin.tar
Stap 4 myems-modbus-tcp
In deze sectie installeert u myems-modbus-tcp op Docker.
- Kopieer broncode naar hoofdmap
cp -r myems/myems-modbus-tcp c:\
cd c:\myems-modbus-tcp
- Maak .env bestand op basis van example.env bestand
Vervang handmatig 127.0.0.1 met echt HOST IP adres.
cp example.env .env
- Bouw Image vanuit Broncode
docker build -t myems/myems-modbus-tcp .
Om voor meerdere platforms te bouwen en niet alleen voor de architectuur en het besturingssysteem waarop de gebruiker die de build aanroept toevallig draait. U kunt buildx gebruiken en de --platform vlag instellen om het doelplatform voor de build output te specificeren, (bijvoorbeeld linux/amd64, linux/arm64, of darwin/amd64).
docker buildx build --platform=linux/amd64 -t myems/myems-modbus-tcp .
- Draai een Docker container (Draai als Administrator)
docker run -d -v c:\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 Draai container op de achtergrond en print container ID
-
-v Als u -v of --volume gebruikt om een bestand of map die nog niet bestaat op de Docker host te bind-mounten, -v maakt het eindpunt voor u aan. Het wordt altijd aangemaakt als een map. De ro optie, indien aanwezig, zorgt ervoor dat de bind-mount als alleen-lezen in de container wordt gemount. Voor versie 4.7.0 of eerder, gebruik '/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 vertegenwoordigt (k, m, of g).
-
--log-opt max-file=2 Het maximale aantal logbestanden dat aanwezig kan zijn. Als het rollen van de logs overmatige bestanden creëert, wordt het oudste bestand verwijderd. Een positief geheel getal.
-
--restart Herstartbeleid dat moet worden toegepast wanneer een container stopt
-
--name Wijs een naam toe aan de container
Het absolute pad vóór de dubbele punt is voor het pad op de host en dat kan variëren op uw systeem. Het absolute pad na de dubbele punt is voor het pad op de container en dat kan NIET worden gewijzigd. Door .env door te geven als bind-mount parameter, kunt u later de configuratiewaarden wijzigen. Als u het .env bestand heeft gewijzigd, herstart de container om de wijziging effectief te maken.
- Migreer de Docker container
Om de container naar een andere computer te migreren,
- Exporteer image naar tarball bestand
docker save --output myems-modbus-tcp.tar myems/myems-modbus-tcp
- Kopieer het tarball bestand naar een andere computer, en laad dan de image vanuit het tarball bestand
docker load --input .\myems-modbus-tcp.tar
Stap 5 myems-cleaning
In deze sectie installeert u myems-cleaning op Docker.
- Kopieer broncode naar hoofdmap
cp -r myems/myems-cleaning c:\
cd c:\myems-cleaning
- Maak .env bestand op basis van example.env bestand
Vervang handmatig 127.0.0.1 met echt HOST IP adres.
cp example.env .env
- Bouw Image vanuit Broncode
docker build -t myems/myems-cleaning .
Om voor meerdere platforms te bouwen en niet alleen voor de architectuur en het besturingssysteem waarop de gebruiker die de build aanroept toevallig draait. U kunt buildx gebruiken en de --platform vlag instellen om het doelplatform voor de build output te specificeren, (bijvoorbeeld linux/amd64, linux/arm64, of darwin/amd64).
docker buildx build --platform=linux/amd64 -t myems/myems-cleaning .
- Draai een Docker container (Draai als Administrator)
docker run -d -v c:\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 Draai container op de achtergrond en print container ID
-
-v Als u -v of --volume gebruikt om een bestand of map die nog niet bestaat op de Docker host te bind-mounten, -v maakt het eindpunt voor u aan. Het wordt altijd aangemaakt als een map. De ro optie, indien aanwezig, zorgt ervoor dat de bind-mount als alleen-lezen in de container wordt gemount. Voor versie 4.7.0 of eerder, gebruik '/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 vertegenwoordigt (k, m, of g).
-
--log-opt max-file=2 Het maximale aantal logbestanden dat aanwezig kan zijn. Als het rollen van de logs overmatige bestanden creëert, wordt het oudste bestand verwijderd. Een positief geheel getal.
-
--restart Herstartbeleid dat moet worden toegepast wanneer een container stopt
-
--name Wijs een naam toe aan de container
Het absolute pad vóór de dubbele punt is voor het pad op de host en dat kan variëren op uw systeem. Het absolute pad na de dubbele punt is voor het pad op de container en dat kan NIET worden gewijzigd. Door .env door te geven als bind-mount parameter, kunt u later de configuratiewaarden wijzigen. Als u het .env bestand heeft gewijzigd, herstart de container om de wijziging effectief te maken.
- Migreer de Docker container
Om de container naar een andere computer te migreren,
- Exporteer image naar tarball bestand
docker save --output myems-cleaning.tar myems/myems-cleaning
- Kopieer het tarball bestand naar een andere computer, en laad dan de image vanuit het tarball bestand
docker load --input .\myems-cleaning.tar
Stap 6 myems-normalization
In deze sectie installeert u myems-normalization op Docker.
- Kopieer broncode naar hoofdmap
cp -r myems/myems-normalization c:\
cd c:\myems-normalization
- Maak .env bestand op basis van example.env bestand
Vervang handmatig 127.0.0.1 met echt HOST IP adres.
cp example.env .env
- Bouw Image vanuit Broncode
docker build -t myems/myems-normalization .
Om voor meerdere platforms te bouwen en niet alleen voor de architectuur en het besturingssysteem waarop de gebruiker die de build aanroept toevallig draait. U kunt buildx gebruiken en de --platform vlag instellen om het doelplatform voor de build output te specificeren, (bijvoorbeeld linux/amd64, linux/arm64, of darwin/amd64).
docker buildx build --platform=linux/amd64 -t myems/myems-normalization .
- Draai een Docker container (Draai als Administrator)
docker run -d -v c:\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 Draai container op de achtergrond en print container ID
-
-v Als u -v of --volume gebruikt om een bestand of map die nog niet bestaat op de Docker host te bind-mounten, -v maakt het eindpunt voor u aan. Het wordt altijd aangemaakt als een map. De ro optie, indien aanwezig, zorgt ervoor dat de bind-mount als alleen-lezen in de container wordt gemount. Voor versie 4.7.0 of eerder, gebruik '/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 vertegenwoordigt (k, m, of g).
-
--log-opt max-file=2 Het maximale aantal logbestanden dat aanwezig kan zijn. Als het rollen van de logs overmatige bestanden creëert, wordt het oudste bestand verwijderd. Een positief geheel getal.
-
--restart Herstartbeleid dat moet worden toegepast wanneer een container stopt
-
--name Wijs een naam toe aan de container
Het absolute pad vóór de dubbele punt is voor het pad op de host en dat kan variëren op uw systeem. Het absolute pad na de dubbele punt is voor het pad op de container en dat kan NIET worden gewijzigd. Door .env door te geven als bind-mount parameter, kunt u later de configuratiewaarden wijzigen. Als u het .env bestand heeft gewijzigd, herstart de container om de wijziging effectief te maken.
- Migreer de Docker container
Om de container naar een andere computer te migreren,
- Exporteer image naar tarball bestand
docker save --output myems-normalization.tar myems/myems-normalization
- Kopieer het tarball bestand naar een andere computer, en laad dan de image vanuit het tarball bestand
docker load --input .\myems-normalization.tar
Stap 7 myems-aggregation
In deze sectie installeert u myems-aggregation op Docker.
- Kopieer broncode naar hoofdmap
cp -r myems/myems-aggregation c:\
cd c:\myems-aggregation
- Maak .env bestand op basis van example.env bestand
Vervang handmatig 127.0.0.1 met echt HOST IP adres.
cp example.env .env
- Bouw Image vanuit Broncode
docker build -t myems/myems-aggregation .
Om voor meerdere platforms te bouwen en niet alleen voor de architectuur en het besturingssysteem waarop de gebruiker die de build aanroept toevallig draait. U kunt buildx gebruiken en de --platform vlag instellen om het doelplatform voor de build output te specificeren, (bijvoorbeeld linux/amd64, linux/arm64, of darwin/amd64).
docker buildx build --platform=linux/amd64 -t myems/myems-aggregation .
- Draai een Docker container (draai als Administrator)
docker run -d -v c:\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 Draai container op de achtergrond en print container ID
-
-v Als u -v of --volume gebruikt om een bestand of map die nog niet bestaat op de Docker host te bind-mounten, -v maakt het eindpunt voor u aan. Het wordt altijd aangemaakt als een map. De ro optie, indien aanwezig, zorgt ervoor dat de bind-mount als alleen-lezen in de container wordt gemount. Voor versie 4.7.0 of eerder, gebruik '/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 vertegenwoordigt (k, m, of g).
-
--log-opt max-file=2 Het maximale aantal logbestanden dat aanwezig kan zijn. Als het rollen van de logs overmatige bestanden creëert, wordt het oudste bestand verwijderd. Een positief geheel getal.
-
--restart Herstartbeleid dat moet worden toegepast wanneer een container stopt
-
--name Wijs een naam toe aan de container
Het absolute pad vóór de dubbele punt is voor het pad op de host en dat kan variëren op uw systeem. Het absolute pad na de dubbele punt is voor het pad op de container en dat kan NIET worden gewijzigd. Door .env door te geven als bind-mount parameter, kunt u later de configuratiewaarden wijzigen. Als u het .env bestand heeft gewijzigd, herstart de container om de wijziging effectief te maken.
-
Migreer de Docker container
-
Exporteer image naar tarball bestand
docker save --output myems-aggregation.tar myems/myems-aggregation
- Kopieer het tarball bestand naar een andere computer, en laad dan de image vanuit het tarball bestand
docker load --input .\myems-aggregation.tar
Stap 8 myems-web
In deze sectie installeert u myems-web op Docker.
- Wijzig het config.js bestand:
Verkrijg mapboxToken op https://mapbox.com en stel vervolgens showOnlineMap in op true. Als u de online kaartfunctie wilt uitschakelen, stel showOnlineMap in op false
cd myems/myems-web
notepad src/config.js
Vervang 127.0.0.1:8000 in nginx.conf met echt HOST ip en poort van myems-api
cd myems/myems-web
notepad nginx.conf
- Kopieer broncode naar hoofdmap
cp -r myems/myems-web c:\
cd c:\myems-web
U kunt de opdracht 'npm run build' in deze sectie veilig negeren, omdat deze is ingebouwd in het Dockerfile
- Bouw Image vanuit Broncode
docker build -t myems/myems-web .
docker image prune -f
Om voor meerdere platforms te bouwen en niet alleen voor de architectuur en het besturingssysteem waarop de gebruiker die de build aanroept toevallig draait. U kunt buildx gebruiken en de --platform vlag instellen om het doelplatform voor de build output te specificeren, (bijvoorbeeld linux/amd64, linux/arm64, of darwin/amd64).
docker buildx build --platform=linux/amd64 -t myems/myems-web .
docker image prune -f
- Draai een Docker container
Op de host, bind-mount nginx.conf
docker run -d -p 80:80 -v c:\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 Draai container op de achtergrond en print container ID
-
-p Publiceer een poort van de container naar de host, 80:80 (Host:Container) bindt poort 80 (rechts) van de container aan TCP poort 80 (links) van de host machine.
-
-v Als u -v of --volume gebruikt om een bestand of map die nog niet bestaat op de Docker host te bind-mounten, -v maakt het eindpunt voor u aan. Het wordt altijd aangemaakt als een map. De ro optie, indien aanwezig, zorgt ervoor dat de bind-mount als alleen-lezen in de container wordt gemount. Voor versie 4.7.0 of eerder, gebruik '/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 vertegenwoordigt (k, m, of g).
-
--log-opt max-file=2 Het maximale aantal logbestanden dat aanwezig kan zijn. Als het rollen van de logs overmatige bestanden creëert, wordt het oudste bestand verwijderd. Een positief geheel getal.
-
--restart Herstartbeleid dat moet worden toegepast wanneer een container stopt
-
--name Wijs een naam toe aan de container
Als u de image naar een andere computer wilt migreren,
- Exporteer image naar tarball bestand
docker save --output myems-web.tar myems/myems-web
- Kopieer het tarball bestand naar een andere computer, en laad dan de image vanuit het tarball bestand
docker load --input .\myems-web.tar
Post-installatie
Gefeliciteerd! U kunt nu inloggen op de MyEMS Admin UI en Web UI.
Standaard Poorten
MyEMS Web UI: 80
MyEMS API: 8000
MyEMS Admin UI: 8001
Neem aan dat het serveradres 192.168.1.8 is (vervang met het daadwerkelijke serveradres) Toegang tot MyEMS Web UI via http://192.168.1.8 (80 kan worden weggelaten) Toegang tot MyEMS Admin UI via http://192.168.1.8:8001
Standaard Wachtwoorden
MyEMS Admin UI
Gebruikersnaam:
administrator
Wachtwoord:
!MyEMS1
MyEMS Web UI
Gebruikersnaam:
administrator@myems.io
Wachtwoord:
!MyEMS1
Probleemoplossing
Vanwege ISP-netwerkproblemen kunt u trage afbeeldings pulling ervaren. U kunt gebruik maken van versnellingsdiensten van derden.