Skip to content

ติดตั้งแบบคลิกเดียวด้วย Docker ​

ปรับใช้ FastBee รุ่นโอเพนซอร์สแบบคลิกเดียวด้วย Docker Compose ตั้งค่าสภาพแวดล้อมเสร็จภายใน 10 นาที เมื่อเทียบกับการปรับใช้แบบระบบ (ภาษาจีน) วิธี Docker ไม่ต้องติดตั้งคอมโพเนนต์แต่ละตัวด้วยตนเอง เหมาะกับผู้ใช้ส่วนใหญ่ หากต้องการควบคุมแต่ละคอมโพเนนต์อย่างละเอียด โปรดเลือกการปรับใช้แบบระบบ

ภาพรวมหน้านี้ ​

เนื้อหาของหน้าขั้นตอนครบถ้วนของการปรับใช้ FastBee รุ่นโอเพนซอร์สด้วย Docker: ข้อกำหนดสภาพแวดล้อม สคริปต์ติดตั้งแบบคลิกเดียว การปรับใช้ docker-compose ด้วยตนเอง การนำเข้าฐานข้อมูล และการตรวจสอบการปรับใช้
เหมาะสำหรับผู้ใช้ที่ปรับใช้ครั้งแรกหรือต้องการตั้งค่าสภาพแวดล้อมทดสอบอย่างรวดเร็ว คำสั่งเดียวติดตั้ง MySQL, Redis, แบ็กเอนด์, Nginx และบริการสตรีมมิง
ข้อกำหนดเบื้องต้นเซิร์ฟเวอร์ติดตั้ง Docker 20.10+ และ Docker Compose 2.0+ แล้ว ขั้นต่ำ 2 คอร์ หน่วยความจำ 4GB และพอร์ตที่เกี่ยวข้องยังไม่ถูกใช้งาน
จุดตรวจรับคอนเทนเนอร์ทั้งหมดมีสถานะ Up เบราว์เซอร์เปิดหน้าเข้าสู่ระบบและเข้าสู่ระบบด้วย admin / admin123 ได้ และพอร์ต MQTT 1883 เชื่อมต่อได้

ข้อกำหนดเบื้องต้น ​

  • Linux / macOS / Windows (แนะนำเซิร์ฟเวอร์ Linux)
  • Docker 20.10+
  • Docker Compose 2.0+
  • ขั้นต่ำ 2 คอร์ หน่วยความจำ 4GB
  • พื้นที่ดิสก์ว่างอย่างน้อย 10GB (สำหรับอิมเมจและดาต้าโวลุม)
  • พอร์ต 80, 443, 8080, 1883, 8083, 5061(UDP), 8082 และอื่น ๆ ยังไม่ถูกใช้งาน คำอธิบายพอร์ตฉบับสมบูรณ์ดูที่การติดตั้งและปรับใช้ (ภาษาจีน)

ก่อนปรับใช้ สามารถตรวจสอบสภาพแวดล้อม Docker ได้ดังนี้:

bash
docker --version
docker-compose --version

ติดตั้งแบบคลิกเดียว ​

bash
sudo wget -c https://hub.fastbee.cn/resource/install.sh && bash ./install.sh

เลือก รุ่นโอเพนซอร์ส ตามคำแนะนำ สคริปต์จะดึงและเริ่มบริการทั้งหมดโดยอัตโนมัติ หลังติดตั้งเสร็จ ให้รัน docker-compose ps เพื่อยืนยันสถานะคอนเทนเนอร์แต่ละตัว และบันทึกที่อยู่เข้าถึงที่สคริปต์แสดงไว้

การปรับใช้ด้วยตนเอง ​

เมื่อสคริปต์แบบคลิกเดียวใช้ไม่ได้ หรือต้องการกำหนดการจัดวางเอง สามารถปรับใช้ด้วยตนเองตามหัวข้อนี้

1. เตรียมไดเรกทอรี ​

bash
mkdir -p /var/data/{mysql,redis,java,nginx,zlmedia}

การปรับใช้ด้วยตนเองต้องเตรียมไฟล์สำหรับเมานต์ต่อไปนี้เอง โดยดึงจากรีโพซิทอรีซอร์สโค้ด และสร้างตามการปรับใช้แบบระบบ (ภาษาจีน):

เส้นทางเนื้อหา
/var/data/java/fastbee-admin.jarแพ็กเกจ jar ของบริการแบ็กเอนด์
/var/data/nginx/vueผลลัพธ์การบิลด์ฟรอนต์เอนด์ (vue/dist)
/var/data/nginx/nginx.confการกำหนดค่า Nginx
/var/data/mysql/mysql.cnfการกำหนดค่า MySQL
/var/data/zlmedia/conf/config.iniการกำหนดค่า ZLMediaKit

2. docker-compose.yml ​

yaml
version: '2'
networks:
  network:
    ipam:
      driver: default
      config:
        - subnet: '177.7.0.0/16'

services:
  mysql:
    image: mysql:5.7
    container_name: mysql
    ports:
      - 3306:3306
    networks:
      network:
        ipv4_address: 177.7.0.11
    volumes:
      - /var/data/mysql/mysql:/var/lib/mysql
      - /var/data/mysql/mysql.cnf:/etc/mysql/conf.d/mysql.cnf
      - /var/data/mysql/initdb:/docker-entrypoint-initdb.d
    environment:
      MYSQL_DATABASE: fastbee
      MYSQL_ROOT_PASSWORD: iot@admin123
    command:
      ['mysqld','--character-set-server=utf8','--collation-server=utf8_unicode_ci',
       '--default-time-zone=+8:00','--lower-case-table-names=1']

  redis:
    image: redis:7.0.0
    container_name: redis
    ports:
      - 6379:6379
    networks:
      network:
        ipv4_address: 177.7.0.10
    volumes:
      - /var/data/redis:/usr/local/etc/redis
      - /var/data/redis/data:/data
    command: ['-- requirepass iot@admin123','-- appendonly yes']

  java:
    image: openjdk:8-jre
    container_name: java
    ports:
      - 8080:8080
      - 1883:1883
      - 8083:8083
      - 5061:5061/udp
    depends_on:
      - redis
      - mysql
      - zlmedia
    volumes:
      - /var/data/java/fastbee-admin.jar:/server.jar
      - /var/data/java/uploadPath:/uploadPath
      - /var/data/java/logs:/logs
    entrypoint: java -jar /server.jar

  nginx:
    image: nginx:stable
    container_name: nginx
    ports:
      - 80:80
      - 443:443
    depends_on:
      - java
    volumes:
      - /var/data/nginx/vue:/usr/share/nginx/html
      - /var/data/nginx/nginx.conf:/etc/nginx/nginx.conf

  zlmedia:
    image: zlmediakit/zlmediakit:master
    container_name: zlmedia
    ports:
      - 8082:80
      - 554:554
      - 1935:1935
    volumes:
      - /var/data/zlmedia/conf/config.ini:/opt/media/conf/config.ini

3. เริ่มบริการ ​

bash
docker-compose up -d
docker-compose ps   # ตรวจสอบสถานะคอนเทนเนอร์

4. นำเข้าฐานข้อมูล ​

นำเข้า springboot/sql/fastbee.sql เข้าสู่ MySQL

bash
docker exec -i mysql mysql -uroot -piot@admin123 fastbee < fastbee.sql

เข้าถึงระบบ ​

หลังปรับใช้เสร็จ เปิดเบราว์เซอร์ไปที่:

http://server-ip:80
  • บัญชี: admin
  • รหัสผ่าน: admin123

คำเตือนด้านความปลอดภัย

หลังเข้าสู่ระบบครั้งแรก โปรดเปลี่ยนรหัสผ่านเริ่มต้นทันที รหัสผ่านเริ่มต้นของฐานข้อมูลและ Redis ใช้สำหรับการทดสอบในเครื่องเท่านั้น สภาพแวดล้อมการผลิตต้องเปลี่ยนใหม่

ตรวจสอบการปรับใช้ ​

  1. ในผลลัพธ์ของ docker-compose ps คอนเทนเนอร์ mysql, redis, java, nginx, zlmedia ต้องมีสถานะ Up ทั้งหมด
  2. เปิด http://server-ip ในเบราว์เซอร์ และเข้าสู่ระบบคอนโซลด้วย admin / admin123 สำเร็จ
  3. ใช้ไคลเอนต์ เช่น MQTTX เชื่อมต่อพอร์ต 1883 เพื่อตรวจสอบเส้นทางการเชื่อมต่ออุปกรณ์ พารามิเตอร์การเชื่อมต่อและขั้นตอนทดสอบดูที่ การเชื่อมต่อ MQTT

คำถามที่พบบ่อย ​

Q: พอร์ตถูกใช้งานอยู่ต้องทำอย่างไร? แก้ไขการแม็ปพอร์ตใน docker-compose.yml เช่น เปลี่ยน - 8080:8080 เป็น - 9090:8080

Q: จะดูล็อกอย่างไร?

bash
docker logs -f java   # ล็อกบริการแบ็กเอนด์
docker logs -f mysql  # ล็อกฐานข้อมูล

Q: คอนเทนเนอร์รีสตาร์ทซ้ำ ๆ ต้องทำอย่างไร? ใช้ docker logs <ชื่อคอนเทนเนอร์> ดูสาเหตุการหยุดทำงานก่อน สาเหตุที่พบบ่อย ได้แก่ พอร์ตชนกัน หน่วยความจำไม่พอ หรือไฟล์กำหนดค่าที่เมานต์หายไป ในการปรับใช้ด้วยตนเอง ให้ตรวจสอบเป็นพิเศษว่าไฟล์ในหัวข้อที่ 1 อยู่ครบแล้ว

Q: เปิดหน้าเว็บไม่ได้หรือเจอ 502? ยืนยันว่าคอนเทนเนอร์ nginx และ java กำลังทำงาน แบ็กเอนด์ต้องเริ่มต้นระบบในการเริ่มครั้งแรก ให้ยืนยันด้วย docker logs -f java ว่าเริ่มเสร็จแล้วจึงค่อยเข้าถึง

Q: แบ็กเอนด์แจ้งเชื่อมต่อฐานข้อมูลไม่สำเร็จ? ยืนยันว่าคอนเทนเนอร์ mysql ทำงานปกติ และรหัสผ่าน root ตรงกับการกำหนดค่าแบ็กเอนด์ ในกรณีปรับใช้ด้วยตนเอง ต้องยืนยันว่าได้รันขั้นตอนที่ 4 นำเข้า fastbee.sql แล้ว

Q: จะอัปเกรดอย่างไร? แทนที่ /var/data/java/fastbee-admin.jar แล้วรีสตาร์ทคอนเทนเนอร์:

bash
docker restart java