构建自定义 Node-RED 图像

Building a custom Node-RED image

我想制作自己的 Node-RED docker 图像,所以当我启动它时,流程已加载,Node-RED 已准备就绪。

我要加载的流程放在'flows.json'文件中。当我通过界面手动导入它时,它工作正常。

docker 的 Node-RED 文档建议使用以下行来使用自定义流程启动 Node-RED

$ docker run -it -p 1880:1880 -e FLOWS=my_flows.json nodered/node-red-docker

然而,当我尝试这样做时,流程最终为空。

我怀疑这与我尝试加载的流程正在使用默认情况下未安装的 'node-red-node-mongodb' 插件有关。

如何构建已安装 'node-red-node-mongodb' 的 Node-RED 映像?

如果需要更多信息,请询问。

更新

我制作了以下 Dockerfile:

FROM nodered/node-red-docker

RUN npm install node-red-node-mongodb

然后我构建它:

docker build -t testenvironment/nodered .

并开始于:

docker run -d -p 1880:1880 -e FLOWS=flows.json --name node-red testenvironment/nodered

但是当我转到Node-RED界面时没有任何流量。我也没有在边栏中看到 MongoDB 节点。

Node-RED 站点上的 documentation 包含有关如何自定义 Docker 图像和添加额外节点的说明。您可以通过使用 docker exec 登录现有映像并使用 npm

手动安装节点来完成此操作
# Open a shell in the container
docker exec -it mynodered /bin/bash

# Once inside the container, npm install the nodes in /data
cd /data
npm install node-red-node-mongodb
exit

# Restart the container to load the new nodes
docker stop mynodered
docker start mynodered

否则您可以通过创建自己的 Docker 文件来扩展图像:

FROM nodered/node-red-docker
RUN npm install node-red-node-mongodb

然后用

构建它
docker build -t mynodered:<tag> .