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
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 hosta | 192.168.0.1 |
| Adres IP bazy danych | 192.168.0.2 |
| Użytkownik bazy danych | root |
| Hasło do bazy danych | !MyEMS1 |
Instalacja
- Sklonuj repozytorium
git clone https://github.com/myems/myems.git
- 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
- Zmodyfikuj Konfigurację
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.
- Zbuduj Interfejs Webowy (UI)
Zmodyfikuj plik konfiguracyjny:
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
- 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
- Weryfikacja
| Adres | Oczekiwany wynik | |
|---|---|---|
| myems-web | 192.168.0.1:80 | Logowanie powiodło się po wprowadzeniu konta i hasła |
| myems-admin | 192.168.0.1:8001 | Logowanie powiodło się po wprowadzeniu konta i hasła |
| myems-api | 192.168.0.1:8000/version | Zwraca informacje o wersji |
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
Z powodu problemów z siecią ISP, pobieranie obrazów może być powolne. Możesz skorzystać z usług akceleracji stron trzecich.