2017-06-21 87 views
0

我想制作自己的Node-RED泊坞窗图像,因此当我启动它时,会加载流并且Node-RED已准备就绪。构建自定义节点RED图像

我想加载的流被放置在'flows.json'文件中。当我通过接口手动导入它时,它工作正常。

的码头工人节点-RED文档建议启动节点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映像?

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

UPDATE

我做了如下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节点。

+1

更新中的docker文件工作得很好,mongo节点将在存储组中找到。 '-e FLOWS = flows.json'只是命名容器中的流文件,如果你想添加一个现有的流到图像,那么你需要添加一个额外的行到Dockerfile'ADD flows.json/data/flows .json'将文件复制到图像 – hardillb

回答

1

Node-RED站点上的documentation包含有关如何自定义Docker镜像和添加额外节点的说明。

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

然后:您可以通过登录到现有的图像使用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 build -t mynodered:<tag> . 
+0

谢谢你的帮助。我仍然没有弄明白。你能看看更新的问题吗? – Jan