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