ข้ามไปยังเนื้อหาหลัก

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

การติดตั้ง

  1. โคลน repository git clone https://github.com/myems/myems.git

  2. นำเข้าโครงสร้างฐานข้อมูล (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

หมายเหตุ: ดูเพิ่มเติมได้ที่ ฐานข้อมูล

  1. แก้ไขการตั้งค่า
เคล็ดลับ

สมมติว่าที่อยู่ 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 ชี้ไปยังโฟลเดอร์เดียวกันบนโฮสต์

  1. สร้าง 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

  1. รันคำสั่ง 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

  1. ตรวจสอบการทำงาน ที่อยู่ ผลลัพธ์ที่คาดหวัง 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

วิธีแก้ปัญหาการดึง image ช้าหรือหมดเวลา

เนื่องจากปัญหาเครือข่ายของผู้ให้บริการอินเทอร์เน็ต (ISP) คุณอาจประสบปัญหาการดึง image ช้า คุณสามารถใช้บริการเร่งความเร็วจากภายนอก (third-party acceleration services) ได้