Przejdź do głównej zawartości

Podman na Linux

W tym przewodniku wdrożysz MyEMS za pomocą Podmana na systemie Linux.

Wymagania wstępne

  • Zainstalowany podman i npm na hoście.
  • Zainstalowany serwer MySQL.
  • Serwer MySQL musi być dostępny z hosta, na którym działa silnik Podman.
Ostrzeżenie
  • Zaleca się wykonywanie poleceń podman z uprawnieniami root'a.

  • Po zainstalowaniu podmana użyj polecenia systemctl status podman-restart.service, aby sprawdzić, czy kontenery są skonfigurowane do automatycznego uruchamiania i polityki restartu. Jeśli wyświetli się Unit not found, oznacza to, że kontener nie będzie uruchamiany automatycznie.

Krok 1 Baza Danych

Zobacz Baza Danych

Krok 2 myems-api

W tej sekcji zainstalujesz myems-api za pomocą Podmana.

  • Skopiuj kod źródłowy do katalogu głównego
cp -r myems/myems-api /
cd /myems-api
  • Utwórz plik .env na podstawie pliku example.env
Ostrzeżenie

Ręcznie zamień 127.0.0.1 na rzeczywisty adres IP HOSTA.

cp example.env .env
  • Zbuduj obraz z kodu źródłowego
podman build -t myems/myems-api .

Aby zbudować obraz dla wielu platform, a nie tylko dla architektury i systemu operacyjnego, na którym uruchamia się budowa, możesz użyć buildx i ustawić flagę --platform, aby określić docelową platformę dla wyniku budowy (np. linux/amd64, linux/arm64 lub darwin/amd64):

podman buildx build --platform=linux/amd64 -t myems/myems-api .
  • Uruchom kontener Podman

Na hoście utwórz współdzielony folder dla plików upload:

mkdir /myems-upload

Utwórz kontener, zamontuj współdzielony folder w kontenerze oraz zamontuj plik .env w trybie tylko do odczytu:

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 Uruchamia kontener w tle i wyświetla ID kontenera

  • -p Publikuje port(y) kontenera na hoście, 8000:8000 (Host:Kontener) mapuje port 8000 (prawa strona) kontenera na port TCP 8000 (lewa strona) maszyny hosta.

  • -v Jeśli użyjesz -v lub --volume do montowania pliku lub katalogu, który jeszcze nie istnieje na hoście Podman, -v utworzy ten punkt końcowy za Ciebie (zawsze jako katalog). Opcja ro (jeśli jest obecna) powoduje zamontowanie punktu montowania w kontenerze w trybie tylko do odczytu. Dla wersji v4.7.0 lub wcześniejszych użyj '/code/.env' zamiast '/app/.env'.

  • --log-opt max-size=2m Maksymalny rozmiar logu przed jego rotacją. Dodatnia liczba całkowita plus modyfikator reprezentujący jednostkę miary (k, m lub g).

  • --log-opt max-file=2 Maksymalna liczba plików logów, które mogą istnieć. Jeśli rotacja logów utworzy nadmiarowe pliki, najstarszy plik zostanie usunięty. Dodatnia liczba całkowita.

  • --restart Polityka restartu stosowana po zamknięciu kontenera

  • --name Przypisuje nazwę kontenerowi

Bezwzględna ścieżka przed dwukrotnikiem dotyczy ścieżki na hoście i może się różnić w zależności od systemu. Bezwzględna ścieżka po dwukrotnikiem dotyczy ścieżki w kontenerze i NIE MOŻE zostać zmieniona. Przekazując .env jako parametr montowania, możesz później zmienić wartości konfiguracyjne. Jeśli zmienisz plik .env, restartuj kontener, aby zmiany zaczęły obowiązywać.

Jeśli chcesz przenieść obraz na inny komputer:

  • Eksportuj obraz do pliku tar
podman save --output myems-api.tar myems/myems-api
  • Skopiuj plik tar na inny komputer, a następnie załaduj obraz z pliku tar
podman load --input ./myems-api.tar

Krok 3 myems-admin

W tej sekcji zainstalujesz myems-admin za pomocą Podmana.

  • Skopiuj kod źródłowy do katalogu głównego
cp -r myems/myems-admin /
cd /myems-admin
Ostrzeżenie

Ręcznie zamień 127.0.0.1:8000 w pliku nginx.conf na rzeczywisty adres IP HOSTA i port myems-api

nano nginx.conf
      proxy_pass http://127.0.0.1:8000/;
  • Zbuduj obraz z kodu źródłowego
podman build -t myems/myems-admin .

Aby zbudować obraz dla wielu platform, a nie tylko dla architektury i systemu operacyjnego, na którym uruchamia się budowa, możesz użyć buildx i ustawić flagę --platform, aby określić docelową platformę dla wyniku budowy (np. linux/amd64, linux/arm64 lub darwin/amd64):

podman buildx build --platform=linux/amd64 -t myems/myems-admin .
  • Uruchom kontener Podman

Na hoście utwórz współdzielony folder dla plików upload:

mkdir /myems-upload

Utwórz kontener, zamontuj współdzielony folder dla plików upload oraz plik nginx.conf:

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 Uruchamia kontener w tle i wyświetla ID kontenera

  • -p Publikuje port(y) kontenera na hoście, 8001:8001 (Host:Kontener) mapuje port 8001 (prawa strona) kontenera na port TCP 8001 (lewa strona) maszyny hosta.

  • -v Jeśli użyjesz -v lub --volume do montowania pliku lub katalogu, który jeszcze nie istnieje na hoście Podman, -v utworzy ten punkt końcowy za Ciebie (zawsze jako katalog). Opcja ro (jeśli jest obecna) powoduje zamontowanie punktu montowania w kontenerze w trybie tylko do odczytu. Dla wersji v4.7.0 lub wcześniejszych użyj '/code/.env' zamiast '/app/.env'.

  • --log-opt max-size=2m Maksymalny rozmiar logu przed jego rotacją. Dodatnia liczba całkowita plus modyfikator reprezentujący jednostkę miary (k, m lub g).

  • --log-opt max-file=2 Maksymalna liczba plików logów, które mogą istnieć. Jeśli rotacja logów utworzy nadmiarowe pliki, najstarszy plik zostanie usunięty. Dodatnia liczba całkowita.

  • --restart Polityka restartu stosowana po zamknięciu kontenera

  • --name Przypisuje nazwę kontenerowi

Jeśli chcesz przenieść obraz na inny komputer:

  • Eksportuj obraz do pliku tar
podman save --output myems-admin.tar myems/myems-admin
  • Skopiuj plik tar na inny komputer, a następnie załaduj obraz z pliku tar
podman load --input ./myems-admin.tar

Krok 4 myems-modbus-tcp

W tej sekcji zainstalujesz myems-modbus-tcp za pomocą Podmana.

  • Skopiuj kod źródłowy do katalogu głównego
cp -r myems/myems-modbus-tcp /
cd /myems-modbus-tcp
  • Utwórz plik .env na podstawie pliku example.env
Ostrzeżenie

Ręcznie zamień 127.0.0.1 na rzeczywisty adres IP HOSTA.

cp example.env .env
  • Zbuduj obraz z kodu źródłowego
podman build -t myems/myems-modbus-tcp .

Aby zbudować obraz dla wielu platform, a nie tylko dla architektury i systemu operacyjnego, na którym uruchamia się budowa, możesz użyć buildx i ustawić flagę --platform, aby określić docelową platformę dla wyniku budowy (np. linux/amd64, linux/arm64 lub darwin/amd64):

podman buildx build --platform=linux/amd64 -t myems/myems-modbus-tcp .
  • Uruchom kontener Podman (jako superużytkownik)
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 Uruchamia kontener w tle i wyświetla ID kontenera

  • -v Jeśli użyjesz -v lub --volume do montowania pliku lub katalogu, który jeszcze nie istnieje na hoście Podman, -v utworzy ten punkt końcowy za Ciebie (zawsze jako katalog). Opcja ro (jeśli jest obecna) powoduje zamontowanie punktu montowania w kontenerze w trybie tylko do odczytu. Dla wersji v4.7.0 lub wcześniejszych użyj '/code/.env' zamiast '/app/.env'.

  • --log-opt max-size=2m Maksymalny rozmiar logu przed jego rotacją. Dodatnia liczba całkowita plus modyfikator reprezentujący jednostkę miary (k, m lub g).

  • --log-opt max-file=2 Maksymalna liczba plików logów, które mogą istnieć. Jeśli rotacja logów utworzy nadmiarowe pliki, najstarszy plik zostanie usunięty. Dodatnia liczba całkowita.

  • --restart Polityka restartu stosowana po zamknięciu kontenera

  • --name Przypisuje nazwę kontenerowi

Bezwzględna ścieżka przed dwukrotnikiem dotyczy ścieżki na hoście i może się różnić w zależności od systemu. Bezwzględna ścieżka po dwukrotnikiem dotyczy ścieżki w kontenerze i NIE MOŻE zostać zmieniona. Przekazując .env jako parametr montowania, możesz później zmienić wartości konfiguracyjne. Jeśli zmienisz plik .env, restartuj kontener, aby zmiany zaczęły obowiązywać.

  • Przeniesienie kontenera Podman

Aby przenieść kontener na inny komputer:

  • Eksportuj obraz do pliku tar
podman save --output myems-modbus-tcp.tar myems/myems-modbus-tcp
  • Skopiuj plik tar na inny komputer, a następnie załaduj obraz z pliku tar
podman load --input ./myems-modbus-tcp.tar

Krok 5 myems-cleaning

W tej sekcji zainstalujesz myems-cleaning za pomocą Podmana.

  • Skopiuj kod źródłowy do katalogu głównego
cp -r myems/myems-cleaning /
cd /myems-cleaning
  • Utwórz plik .env na podstawie pliku example.env
Ostrzeżenie

Ręcznie zamień 127.0.0.1 na rzeczywisty adres IP HOSTA.

cp example.env .env
  • Zbuduj obraz z kodu źródłowego
podman build -t myems/myems-cleaning .

Aby zbudować obraz dla wielu platform, a nie tylko dla architektury i systemu operacyjnego, na którym uruchamia się budowa, możesz użyć buildx i ustawić flagę --platform, aby określić docelową platformę dla wyniku budowy (np. linux/amd64, linux/arm64 lub darwin/amd64):

podman buildx build --platform=linux/amd64 -t myems/myems-cleaning .
  • Uruchom kontener Podman (jako superużytkownik)
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 Uruchamia kontener w tle i wyświetla ID kontenera

  • -v Jeśli użyjesz -v lub --volume do montowania pliku lub katalogu, który jeszcze nie istnieje na hoście Podman, -v utworzy ten punkt końcowy za Ciebie (zawsze jako katalog). Opcja ro (jeśli jest obecna) powoduje zamontowanie punktu montowania w kontenerze w trybie tylko do odczytu. Dla wersji v4.7.0 lub wcześniejszych użyj '/code/.env' zamiast '/app/.env'.

  • --log-opt max-size=2m Maksymalny rozmiar logu przed jego rotacją. Dodatnia liczba całkowita plus modyfikator reprezentujący jednostkę miary (k, m lub g).

  • --log-opt max-file=2 Maksymalna liczba plików logów, które mogą istnieć. Jeśli rotacja logów utworzy nadmiarowe pliki, najstarszy plik zostanie usunięty. Dodatnia liczba całkowita.

  • --restart Polityka restartu stosowana po zamknięciu kontenera

  • --name Przypisuje nazwę kontenerowi

Bezwzględna ścieżka przed dwukrotnikiem dotyczy ścieżki na hoście i może się różnić w zależności od systemu. Bezwzględna ścieżka po dwukrotnikiem dotyczy ścieżki w kontenerze i NIE MOŻE zostać zmieniona. Przekazując .env jako parametr montowania, możesz później zmienić wartości konfiguracyjne. Jeśli zmienisz plik .env, restartuj kontener, aby zmiany zaczęły obowiązywać.

  • Przeniesienie kontenera Podman

Aby przenieść kontener na inny komputer:

  • Eksportuj obraz do pliku tar
podman save --output myems-cleaning.tar myems/myems-cleaning
  • Skopiuj plik tar na inny komputer, a następnie załaduj obraz z pliku tar
podman load --input ./myems-cleaning.tar

Krok 6 myems-normalization

W tej sekcji zainstalujesz myems-normalization za pomocą Podmana.

  • Skopiuj kod źródłowy do katalogu głównego
cp -r myems/myems-normalization /
cd /myems-normalization
  • Utwórz plik .env na podstawie pliku example.env
Ostrzeżenie

Ręcznie zamień 127.0.0.1 na rzeczywisty adres IP HOSTA.

cp example.env .env
  • Zbuduj obraz z kodu źródłowego
podman build -t myems/myems-normalization .

Aby zbudować obraz dla wielu platform, a nie tylko dla architektury i systemu operacyjnego, na którym uruchamia się budowa, możesz użyć buildx i ustawić flagę --platform, aby określić docelową platformę dla wyniku budowy (np. linux/amd64, linux/arm64 lub darwin/amd64):

podman buildx build --platform=linux/amd64 -t myems/myems-normalization .
  • Uruchom kontener Podman (jako superużytkownik)
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 Uruchamia kontener w tle i wyświetla ID kontenera

  • -v Jeśli użyjesz -v lub --volume do montowania pliku lub katalogu, który jeszcze nie istnieje na hoście Podman, -v utworzy ten punkt końcowy za Ciebie (zawsze jako katalog). Opcja ro (jeśli jest obecna) powoduje zamontowanie punktu montowania w kontenerze w trybie tylko do odczytu. Dla wersji v4.7.0 lub wcześniejszych użyj '/code/.env' zamiast '/app/.env'.

  • --log-opt max-size=2m Maksymalny rozmiar logu przed jego rotacją. Dodatnia liczba całkowita plus modyfikator reprezentujący jednostkę miary (k, m lub g).

  • --log-opt max-file=2 Maksymalna liczba plików logów, które mogą istnieć. Jeśli rotacja logów utworzy nadmiarowe pliki, najstarszy plik zostanie usunięty. Dodatnia liczba całkowita.

  • --restart Polityka restartu stosowana po zamknięciu kontenera

  • --name Przypisuje nazwę kontenerowi

Bezwzględna ścieżka przed dwukrotnikiem dotyczy ścieżki na hoście i może się różnić w zależności od systemu. Bezwzględna ścieżka po dwukrotnikiem dotyczy ścieżki w kontenerze i NIE MOŻE zostać zmieniona. Przekazując .env jako parametr montowania, możesz później zmienić wartości konfiguracyjne. Jeśli zmienisz plik .env, restartuj kontener, aby zmiany zaczęły obowiązywać.

  • Przeniesienie kontenera Podman

Aby przenieść kontener na inny komputer:

  • Eksportuj obraz do pliku tar
podman save --output myems-normalization.tar myems/myems-normalization
  • Skopiuj plik tar na inny komputer, a następnie załaduj obraz z pliku tar
podman load --input ./myems-normalization.tar

Krok 7 myems-aggregation

W tej sekcji zainstalujesz myems-aggregation za pomocą Podmana.

  • Skopiuj kod źródłowy do katalogu głównego
cp -r myems/myems-aggregation /
cd /myems-aggregation
  • Utwórz plik .env na podstawie pliku example.env
cp example.env .env
Ostrzeżenie

Ręcznie zamień 127.0.0.1 na rzeczywisty adres IP HOSTA.

  • Zbuduj obraz z kodu źródłowego
podman build -t myems/myems-aggregation .

Aby zbudować obraz dla wielu platform, a nie tylko dla architektury i systemu operacyjnego, na którym uruchamia się budowa, możesz użyć buildx i ustawić flagę --platform, aby określić docelową platformę dla wyniku budowy (np. linux/amd64, linux/arm64 lub darwin/amd64):

podman buildx build --platform=linux/amd64 -t myems/myems-aggregation .
  • Uruchom kontener Podman (jako superużytkownik)
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 Uruchamia kontener w tle i wyświetla ID kontenera

  • -v Jeśli użyjesz -v lub --volume do montowania pliku lub katalogu, który jeszcze nie istnieje na hoście Podman, -v utworzy ten punkt końcowy za Ciebie (zawsze jako katalog). Opcja ro (jeśli jest obecna) powoduje zamontowanie punktu montowania w kontenerze w trybie tylko do odczytu. Dla wersji v4.7.0 lub wcześniejszych użyj '/code/.env' zamiast '/app/.env'.

  • --log-opt max-size=2m Maksymalny rozmiar logu przed jego rotacją. Dodatnia liczba całkowita plus modyfikator reprezentujący jednostkę miary (k, m lub g).

  • --log-opt max-file=2 Maksymalna liczba plików logów, które mogą istnieć. Jeśli rotacja logów utworzy nadmiarowe pliki, najstarszy plik zostanie usunięty. Dodatnia liczba całkowita.

  • --restart Polityka restartu stosowana po zamknięciu kontenera

  • --name Przypisuje nazwę kontenerowi

Bezwzględna ścieżka przed dwukrotnikiem dotyczy ścieżki na hoście i może się różnić w zależności od systemu. Bezwzględna ścieżka po dwukrotnikiem dotyczy ścieżki w kontenerze i NIE MOŻE zostać zmieniona. Przekazując .env jako parametr montowania, możesz później zmienić wartości konfiguracyjne. Jeśli zmienisz plik .env, restartuj kontener, aby zmiany zaczęły obowiązywać.

  • Przeniesienie kontenera Podman

  • Eksportuj obraz do pliku tar

podman save --output myems-aggregation.tar myems/myems-aggregation
  • Skopiuj plik tar na inny komputer, a następnie załaduj obraz z pliku tar
podman load --input ./myems-aggregation.tar

Krok 8 myems-web

W tej sekcji zainstalujesz myems-web za pomocą Podmana.

  • Modyfikuj plik config.js:
Uwaga

Pobierz mapboxToken na stronie https://mapbox.com, a następnie ustaw showOnlineMap na true. Jeśli chcesz wyłączyć funkcję mapy online, ustaw showOnlineMap na false.

cd myems/myems-web
nano src/config.js
Ostrzeżenie

Zamień 127.0.0.1:8000 w pliku nginx.conf na rzeczywisty adres IP HOSTA i port myems-api.

cd myems/myems-web
nano nginx.conf
  • Skopiuj kod źródłowy do katalogu głównego
cp -r myems/myems-web /
cd /myems-web
Informacje

Możesz bezpiecznie zignorować polecenie 'npm run build' w tej sekcji, ponieważ jest ono uwzględnione w pliku Podmanfile.

  • Zbuduj obraz z kodu źródłowego
podman build -t myems/myems-web .

Aby zbudować obraz dla wielu platform, a nie tylko dla architektury i systemu operacyjnego, na którym uruchamia się budowa, możesz użyć buildx i ustawić flagę --platform, aby określić docelową platformę dla wyniku budowy (np. linux/amd64, linux/arm64 lub darwin/amd64):

podman buildx build --platform=linux/amd64 -t myems/myems-web .
  • Uruchom kontener Podman

Na hoście zamontuj plik nginx.conf:

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 Uruchamia kontener w tle i wyświetla ID kontenera

  • -p Publikuje port(y) kontenera na hoście, 80:80 (Host:Kontener) mapuje port 80 (prawa strona) kontenera na port TCP 80 (lewa strona) maszyny hosta.

  • -v Jeśli użyjesz -v lub --volume do montowania pliku lub katalogu, który jeszcze nie istnieje na hoście Podman, -v utworzy ten punkt końcowy za Ciebie (zawsze jako katalog). Opcja ro (jeśli jest obecna) powoduje zamontowanie punktu montowania w kontenerze w trybie tylko do odczytu. Dla wersji v4.7.0 lub wcześniejszych użyj '/code/.env' zamiast '/app/.env'.

  • --log-opt max-size=2m Maksymalny rozmiar logu przed jego rotacją. Dodatnia liczba całkowita plus modyfikator reprezentujący jednostkę miary (k, m lub g).

  • --log-opt max-file=2 Maksymalna liczba plików logów, które mogą istnieć. Jeśli rotacja logów utworzy nadmiarowe pliki, najstarszy plik zostanie usunięty. Dodatnia liczba całkowita.

  • --restart Polityka restartu stosowana po zamknięciu kontenera

  • --name Przypisuje nazwę kontenerowi

Jeśli chcesz przenieść obraz na inny komputer:

  • Eksportuj obraz do pliku tar
podman save --output myems-web.tar myems/myems-web
  • Skopiuj plik tar na inny komputer, a następnie załaduj obraz z pliku tar
podman load --input ./myems-web.tar

Po instalacji

Gratulacje! Teraz możesz zalogować się do interfejsu administracyjnego MyEMS Admin UI oraz Web UI.

Domyślne porty

MyEMS Web UI: 80

MyEMS API: 8000

MyEMS Admin UI: 8001

Zakładając, że adres serwera to 192.168.1.8 (zamień na rzeczywisty adres serwera): Dostęp do MyEMS Web UI pod adresem http://192.168.1.8 (port 80 można pominąć) Dostęp do MyEMS Admin UI pod adresem http://192.168.1.8:8001

Domyślne hasła

MyEMS Admin UI

Nazwa użytkownika:

administrator

Hasło:

!MyEMS1

MyEMS Web UI

Nazwa użytkownika:

administrator@myems.io

Hasło:

!MyEMS1

Rozwiązywanie problemów