# MQTT 消息服务(EMQX,大屏/桌面端实时总线) name: opc-emqx services: emqx: # image: 192.168.1.3:9998/pinesound/emqx:latest image: emqx/emqx:latest container_name: opc-emqx pull_policy: always restart: unless-stopped environment: # EMQX 集群名称 EMQX_CLUSTER__NAME: opc_cluster # 节点名称 EMQX_NODE__NAME: emqx@127.0.0.1 # Dashboard 管理员密码 EMQX_DASHBOARD__DEFAULT_PASSWORD: "WSSmine4ever" # MQTT TCP 监听器认证 EMQX_LISTENERS__TCP__DEFAULT__PROXY_PROTOCOL: false # 内置数据库认证(MQTT 客户端连接用户名密码) EMQX_AUTHENTICATION__BUILTIN__USERS: | [ { "username": "opc", "password": "Opc123!" } ] # 允许匿名连接(设为 false 强制认证) EMQX_ALLOW_ANONYMOUS: false # MQTT 最大客户端数 EMQX_LISTENERS__TCP__DEFAULT__MAX_CONNECTIONS: 102400 # 日志等级 EMQX_LOG__LEVEL: info ports: # MQTT TCP - "1883:1883" # MQTT SSL - "8883:8883" # MQTT WebSocket - "8083:8083" # MQTT WebSocket SSL - "8084:8084" # Dashboard API(Web 管理控制台) - "18083:18083" volumes: # 持久化 EMQX 数据 - ../../serverdata/emqx-data:/opt/emqx/data # 持久化 EMQX 日志 - ../../serverdata/emqx-log:/opt/emqx/log user: "0:0" # 临时用 root 运行,彻底解决权限 healthcheck: test: ["CMD", "emqx", "ctl", "status"] interval: 15s timeout: 5s retries: 3 start_period: 30s networks: - opc-network networks: opc-network: name: opc-network external: true