Ga naar de hoofdinhoud

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
Voorzichtigheid

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
Voorzichtigheid

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
Voorzichtigheid

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
Voorzichtigheid

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
Voorzichtigheid

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
Voorzichtigheid

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:
Notitie

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
Voorzichtigheid

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
Informatie

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

Hoe afbeeldings pull timeout problemen op te lossen

Vanwege ISP-netwerkproblemen kunt u trage afbeeldings pulling ervaren. U kunt gebruik maken van versnellingsdiensten van derden.