场景
项目中需要用到EMQX作为MQTT的server
目的
通过docker-compose编排,维护emqx
问题
解决初始化账号密码的问题
解决插件启用的问题
解决一些安全隐患比如匿名链接等
注意的点
-
类似于4.0的版本,以前客户端链接鉴权支持username,clientId等,现在这两个集成到了mnesia中,这里选择用username鉴权
-
mnesia安装好默认是不启用状态,如果跑后台去启用,还需要重新进容器修改配置文件,或者通过http接口走api添加账号,麻烦,并且修改配置文件存在安全问题,官方说明如下
-
另外如果下次recreate后,一夜回到解放前,很麻烦
-
官方文档中相关的内容在参数配置部分,
https://www.emqx.io/docs/zh/v4.4/configuration/configuration.html,另外就是这部分内容是不全的,需要全的话,可以先默认跑一个容器,然后进去直接查看配置文件
所以综上问题,在构建阶段就把该要的配置写入进去
FROM emqx:4.4.4
LABEL maintainer="bingo <geek2bin@163.com>"
WORKDIR /opt/emqx
ENV EMQX_ALLOW_ANONYMOUS=false
ENV EMQX_ACL_NOMATCH=deny
# 设置 面板的默认账号密码
ENV EMQX_DASHBOARD__DEFAULT_USER__PASSWORD=admin
ENV EMQX_DASHBOARD__DEFAULT_USER__PASSWORD=123456
# 复制新的插件列表配置文件
COPY config/new_loaded_plugins ./data/new_loaded_plugins
# 重新赋值插件配置文件
ENV EMQX_PLUGINS__LOADED_FILE=data/new_loaded_plugins
# 设置 mnesia 用户账号密码
ENV EMQX_AUTH__USER__1__USERNAME=lorawan
ENV EMQX_AUTH__USER__1__PASSWORD=123456
ENV EMQX_AUTH__USER__2__USERNAME=lorawan_test
ENV EMQX_AUTH__USER__2__PASSWORD=123456
网友评论