构建自定义Node-RED映像

时间:2017-06-21 08:44:18

标签: node.js docker dockerfile node-red

我想创建自己的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节点。

1 个答案:

答案 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> .