我想创建自己的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节点。
答案 0 :(得分:1)
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> .