Docker部署的Node-RED中子流转模块后Palette面板不显示如何解决
自定义节点未在管理面板显示排查步骤
- 安装路径校验
Node-RED官方Docker镜像的用户数据根目录为/data,仅安装到该路径下的节点模块会被识别。进入容器后需先切换到/data目录,再执行npm install <你的自定义节点路径>命令,禁止全局安装或在其他目录执行安装操作。 - package.json配置校验
你的自定义节点包的package.json文件必须包含node-red专属配置字段,用于声明节点对应的代码文件路径,示例配置如下:
缺省该字段的npm包不会被Node-RED识别为节点模块。{ "name": "node-red-contrib-your-custom-node", "version": "1.0.0", "node-red": { "nodes": { "your-node-id": "your-node-file.js" } } } - 文件权限校验
Docker容器内Node-RED进程默认使用uid=1000、gid=1000的用户运行,如果你exec进入容器时默认使用root身份安装模块,会导致节点文件权限过高,Node-RED无权限读取。安装完成后可执行chown -R 1000:1000 /data/node_modules/<你的节点包名>修复权限。 - 进程重启校验
安装节点后必须重启Node-RED进程才能加载新模块,仅刷新浏览器页面无效。退出容器后在EC2主机执行docker restart mynodered重启容器,再进入管理面板查看。
如果你需要所有新创建的Node-RED实例都默认加载该模块,不要直接在运行中的容器内安装(容器删除后配置会丢失),可以选择两种方案:一是将自定义节点包放到EC2上挂载到容器
/data目录的宿主机路径中,所有新容器都挂载该目录即可;二是基于官方Node-RED镜像编写Dockerfile,预先将自定义节点安装到镜像内,新实例直接使用你构建的自定义镜像即可。
内容的提问来源于stack exchange,提问作者Mohamed AIT LAADIK
相关产品推荐
相关产品推荐

