Pergi ke konten utama

Docker Compose

Dalam panduan ini, Anda akan melakukan deploy MyEMS dengan Docker Compose dengan membuat dan memulai semua layanan menggunakan satu perintah.

Prasyarat

  • Docker, docker-compose, npm telah terinstal di host.
  • Server MySQL terinstal dengan username 'root' dan password '!MyEMS1'.
  • Basis data MySQL dapat dihubungkan dari host tempat Docker Engine berjalan.

Konfigurasi

Tips

Host merujuk pada server tempat mesin Docker berjalan. IP dan kata sandi akun diasumsikan dan digunakan untuk menunjukkan instruksi. Harap modifikasi sesuai kebutuhan.

----
IP Host192.168.0.1
IP Basis Data192.168.0.2
Pengguna Basis Dataroot
Kata Sandi Basis Data!MyEMS1

Instalasi

  1. Clone repositori
git clone https://github.com/myems/myems.git
  1. Impor skema basis data
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

Catatan: Lihat basis data

  1. Modifikasi Konfigurasi
Tips

Asumsikan IP host adalah 192.168.0.1, IP basis data adalah 192.168.0.2, akun basis data adalah: root, dan kata sandi basis data adalah: !MyEMS1, harap modifikasi sesuai kebutuhan

3.1 Modifikasi alamat API di nginx.conf

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

3.2 Salin example.env ke .env di setiap folder dan modifikasi IP basis data, username, dan password di .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 Modifikasi folder upload di docker-compose.yml Jika host Windows, gunakan c:\upload untuk volumes/source di layanan api dan admin. Jika host Linux, gunakan /upload untuk volumes/source di layanan api dan admin. Pastikan folder upload di api dan admin adalah folder yang sama di host.

  1. Build Web UI

Modifikasi file konfigurasi:

Catatan

Dapatkan mapboxToken dari https://mapbox.com lalu atur showOnlineMap ke true. Jika Anda ingin mematikan fitur peta online, atur showOnlineMap ke false

cd myems/myems-web
sudo nano src/config.js

Build:

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

Di Host Windows:

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

Di Host Linux:

cd myems
docker-compose -f docker-compose-on-linux.yml up -d
  1. Verifikasi
AlamatHasil yang Diharapkan
myems-web192.168.0.1:80Login berhasil dengan memasukkan akun dan kata sandi
myems-admin192.168.0.1:8001Login berhasil dengan memasukkan akun dan kata sandi
myems-api192.168.0.1:8000/versionMengembalikan informasi versi
Informasi

Jika API melaporkan error, harap konfirmasi apakah IP basis data, akun basis data, dan kata sandi basis data di .env sudah benar. Jika tidak, harap modifikasi lalu jalankan:

docker-compose up --build -d
Cara mengatasi masalah timeout saat menarik image (pull)

Karena masalah jaringan ISP, Anda mungkin mengalami penarikan image yang lambat. Anda dapat menggunakan layanan akselerasi pihak ketiga.