Przejdź do głównej zawartości

Docker Compose

W tym przewodniku wdrożysz MyEMS za pomocą Docker Compose, tworząc i uruchamiając wszystkie usługi za pomocą jednego polecenia.

Wymagania wstępne

  • Zainstalowany docker, docker-compose, npm na hoście.
  • Zainstalowany serwer MySQL z nazwą użytkownika 'root' i hasłem '!MyEMS1'.
  • Do bazy danych MySQL można się połączyć z hosta, na którym działa silnik Docker.

Konfiguracja

Porada

Host odnosi się do serwera, na którym działa silnik Docker. IP oraz konto i hasło są założone i użyte do pokazania instrukcji. Proszę je odpowiednio zmodyfikować.

----
Adres IP hosta192.168.0.1
Adres IP bazy danych192.168.0.2
Użytkownik bazy danychroot
Hasło do bazy danych!MyEMS1

Instalacja

  1. Sklonuj repozytorium
git clone https://github.com/myems/myems.git
  1. Zaimportuj schemat bazy danych
cd myems/database/install
mysql -u root -p < myems_billing_db.sql
mysql -u root -p < myems_carbon_db.sql
mysql -u root -p < myems_energy_baseline_db.sql
mysql -u root -p < myems_energy_db.sql
mysql -u root -p < myems_energy_model_db.sql
mysql -u root -p < myems_energy_plan_db.sql
mysql -u root -p < myems_energy_prediction_db.sql
mysql -u root -p < myems_fdd_db.sql
mysql -u root -p < myems_historical_db.sql
mysql -u root -p < myems_production_db.sql
mysql -u root -p < myems_reporting_db.sql
mysql -u root -p < myems_system_db.sql
mysql -u root -p < myems_user_db.sql

Uwaga: Odniesienie do baza danych

  1. Zmodyfikuj Konfigurację
Porada

Załóżmy, że adres IP hosta to 192.168.0.1, adres IP bazy danych to 192.168.0.2, konto bazy danych to: root, a hasło bazy danych to: !MyEMS1. Proszę je odpowiednio zmodyfikować.

3.1 Zmodyfikuj adres API w nginx.conf

cd myems
nano myems-admin/nginx.conf
nano myems-web/nginx.conf

3.2 Skopiuj example.env do .env w każdym folderze i zmodyfikuj adres IP bazy danych, nazwę użytkownika i hasło w pliku .env

cd myems
cp myems-aggregation/example.env myems-aggregation/.env
nano myems-aggregation/.env
cp myems-api/example.env myems-api/.env
nano myems-api/.env
cp myems-cleaning/example.env myems-cleaning/.env
nano myems-cleaning/.env
cp myems-modbus-tcp/example.env myems-modbus-tcp/.env
nano myems-modbus-tcp/.env
cp myems-normalization/example.env myems-normalization/.env
nano myems-normalization/.env

3.3 Zmodyfikuj folder przesyłania w docker-compose.yml Jeśli host to Windows, użyj c:\upload dla volumes/source w usługach api i admin. Jeśli host to Linux, użyj /upload dla volumes/source w usługach api i admin. Upewnij się, że foldery przesyłania w api i admin są tym samym folderem na hoście.

  1. Zbuduj Interfejs Webowy (UI)

Zmodyfikuj plik konfiguracyjny:

Uwaga

Uzyskaj mapboxToken z 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
sudo nano src/config.js

Budowanie:

cd myems/myems-web
npm i --unsafe-perm=true --allow-root --legacy-peer-deps
npm run build
  1. Uruchom polecenie docker-compose

Na hoście Windows:

cd myems
docker-compose -f docker-compose-on-windows.yml up -d

Na hoście Linux:

cd myems
docker-compose -f docker-compose-on-linux.yml up -d
  1. Weryfikacja
AdresOczekiwany wynik
myems-web192.168.0.1:80Logowanie powiodło się po wprowadzeniu konta i hasła
myems-admin192.168.0.1:8001Logowanie powiodło się po wprowadzeniu konta i hasła
myems-api192.168.0.1:8000/versionZwraca informacje o wersji
Informacje

Jeśli API zgłasza błąd, potwierdź, czy adres IP bazy danych, konto bazy danych i hasło bazy danych w pliku .env są poprawne. Jeśli nie, zmodyfikuj je, a następnie wykonaj:

docker-compose up --build -d
Jak rozwiązać problemy z timeout pobierania obrazów

Z powodu problemów z siecią ISP, pobieranie obrazów może być powolne. Możesz skorzystać z usług akceleracji stron trzecich.