docker-compose
แน่นอน! ด้านล่างนี้คือเอกสารฉบับเต็มที่แปลเป็นภาษาไทย โดย คงโค้ดต้นฉบับไว้ทั้งหมดตามเดิม และแปลเฉพาะข้อความอธิบายเท่านั้น:
sidebar_position: 6
Docker Compose
ในคู่มือนี้ คุณจะทำการติดตั้ง MyEMS โดยใช้ Docker Compose ซึ่งสามารถสร้างและเริ่มต้นบริการทั้งหมดได้ด้วยคำสั่งเดียว
ข้อกำหนดเบื้องต้น
- ติดตั้ง docker, docker-compose และ npm บนโฮสต์แล้ว
- ติดตั้งเซิร์ฟเวอร์ MySQL พร้อมชื่อผู้ใช้ 'root' และรหัสผ่าน '!MyEMS1'
- ฐานข้อมูล MySQL ต้องสามารถเชื่อมต่อได้จากโฮสต์ที่รัน Docker Engine
การกำหนดค่า
"โฮสต์" ในที่นี้หมายถึงเซิร์ฟเวอร์ที่รัน Docker Engine ที่อยู่ IP และบัญชี/รหัสผ่านที่ระบุเป็นเพียงตัวอย่างเพื่อใช้แสดงวิธีการ กรุณาแก้ไขให้เหมาะสมกับสภาพแวดล้อมของคุณ
ที่อยู่ IP ของโฮสต์ 192.168.0.1
ที่อยู่ IP ของฐานข้อมูล 192.168.0.2
ชื่อผู้ใช้ฐานข้อมูล root
รหัสผ่านฐานข้อมูล !MyEMS1
การติดตั้ง
-
โคลน repository git clone https://github.com/myems/myems.git
-
นำเข้าโครงสร้างฐานข้อมูล (database schema)
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
หมายเหตุ: ดูเพิ่มเติมได้ที่ ฐานข้อมูล
- แก้ไขการตั้งค่า
สมมติว่าที่อยู่ IP ของโฮสต์คือ 192.168.0.1, ที่อยู่ IP ของฐานข้อมูลคือ 192.168.0.2, ชื่อบัญชีฐานข้อมูลคือ root และรหัสผ่านคือ !MyEMS1 กรุณาแก้ไขให้เหมาะสมกับสภาพแวดล้อมของคุณ
3.1 แก้ไขที่อยู่ของ API ในไฟล์ nginx.conf cd myems
nano myems-admin/nginx.conf
nano myems-web/nginx.conf
3.2 คัดลอกไฟล์ example.env ไปเป็น .env ในแต่ละโฟลเดอร์ และแก้ไขที่อยู่ IP ของฐานข้อมูล ชื่อผู้ใช้ และรหัสผ่านในฐานข้อมูลในไฟล์ .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 แก้ไขโฟลเดอร์ upload ในไฟล์ docker-compose.yml
หากโฮสต์เป็น Windows ให้ใช้ c:upload สำหรับ volumes/source ในบริการ api และ admin
หากโฮสต์เป็น Linux ให้ใช้ /upload สำหรับ volumes/source ในบริการ api และ admin
โปรดตรวจสอบให้แน่ใจว่าโฟลเดอร์ upload ของ api และ admin ชี้ไปยังโฟลเดอร์เดียวกันบนโฮสต์
- สร้าง Web UI
แก้ไขไฟล์การตั้งค่า:
รับ mapboxToken จาก https://mapbox.com แล้วตั้งค่า showOnlineMap เป็น true หากคุณต้องการปิดคุณสมบัติแผนที่ออนไลน์ ให้ตั้งค่า showOnlineMap เป็น 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
- รันคำสั่ง docker-compose
บนโฮสต์ระบบ Windows: cd myems
docker-compose -f docker-compose-on-windows.yml up -d
บนโฮสต์ระบบ Linux:
cd myems
docker-compose -f docker-compose-on-linux.yml up -d
- ตรวจสอบการทำงาน ที่อยู่ ผลลัพธ์ที่คาดหวัง myems-web 192.168.0.1:80 เข้า สู่ระบบได้สำเร็จโดยกรอกชื่อบัญชีและรหัสผ่าน
myems-admin 192.168.0.1:8001 เข้าสู่ระบบได้สำเร็จโดยกรอกชื่อบัญชีและรหัสผ่าน
myems-api 192.168.0.1:8000/version แสดงข้อมูลเวอร์ชันกลับมา
หาก API รายงานข้อผิดพลาด โปรดตรวจสอบว่าที่อยู่ IP ของฐานข้อมูล ชื่อบัญชี และรหัสผ่านในฐานข้อมูลในไฟล์ .env ถูกต้องหรือไม่ หากไม่ถูกต้อง โปรดแก้ไขแล้วรันคำสั่งใหม่:
docker-compose up --build -d
เนื่องจากปัญหาเครือข่ายของผู้ให้บริการอินเทอร์เน็ต (ISP) คุณอาจประสบปัญหาการดึง image ช้า คุณสามารถใช้บริการเร่งความเร็วจากภายนอก (third-party acceleration services) ได้