Skip to content

Docker ワンクリックデプロイ ​

Docker Compose を使用して FastBee オープンソース版をワンクリックでデプロイし、最短 10 分で環境構築を完了できます。システムデプロイ(中国語)と比較して、Docker 方式では各コンポーネントを手動でインストールする必要がなく、ほとんどのユーザーに適しています。コンポーネントごとの細かい制御が必要な場合は、システムデプロイを選択してください。

ページガイド ​

ページ内容FastBee オープンソース版の Docker デプロイの完全な手順:環境要件、ワンクリックインストールスクリプト、手動 docker-compose デプロイ、データベースのインポート、デプロイの検証。
対象シーン初めてデプロイする場合やテスト環境をすばやく構築する場合に適しており、1 つのコマンドで 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.confNginx 設定
/var/data/mysql/mysql.cnfMySQL 設定
/var/data/zlmedia/conf/config.iniZLMediaKit 設定

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://サーバーのIP:80
  • アカウント:admin
  • パスワード:admin123

セキュリティに関する注意

初回ログイン後はすぐにデフォルトパスワードを変更してください。データベースと Redis のデフォルトパスワードはローカルテスト専用です。本番環境では必ず変更してください。

デプロイの検証 ​

  1. docker-compose ps の出力で mysql、redis、java、nginx、zlmedia の状態がすべて Up になっていること。
  2. ブラウザで http://サーバーの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