Node-RED 容器化

微信ID: Van1sh1ngAct

建立Node-RED容器

工作目录下应有以下文件.


工作目录

flows.json

该文件为Node-RED应用的源文件, 可以通过export导出.

Dockerfile

FROM nodered/node-red

COPY package.json .
RUN npm install --unsafe-perm --no-update-notifier --no-fund --only=production --registry=https://registry.npm.taobao.org
ENV NODE_RED_CREDENTIAL_SECRET node-red

COPY flows_cred.json /data/flows_cred.json
COPY flows.json /data/flows.json
COPY settings.js /data/settings.js

FROM 基于nodered/node-red镜像进行构建

COPYpackage.json拷贝到容器工作目录, 描述了项目的依赖, 以及项目启动方式

RUN执行命令npm install --unsafe-perm --no-update-notifier --no-fund --only=production --registry=https://registry.npm.taobao.org 此处为安装项目的依赖, 该依赖由package.json描述

ENV设置环境变量NODE_RED_CREDENTIAL_SECRETnode-red 主要用于解析flows_cred.json

COPYflows_cred.json & flows.json & settings.js拷贝到容器/data
flows_cred.json为项目的秘钥文件, 记录数据库连接密码等敏感数据
flows.json项目源文件.
settings.js项目的配置文件.

package.json

{
  "name": "node-red-project",
  "description": "A Node-RED Project",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "node-red-dashboard": "~2.30.0",
    "node-red": "1.3.5"
  },
  "scripts": {
    "start": "node node_modules/node-red/red.js /data/flows.json"
  }
}

dependencies 描述了需要的依赖, 依次为dashboard,node-red
scripts下的start描述了容器启动时执行的命令
node node_modules/node-red/red.js /data/flows.json 使用node执行red.js 并把/data/flows.json作为源文件

构建镜像

docker build . -t iot_edge/services:0.1

与构建数据库镜像类似

启动容器

docker run -itd -p 1880:1880 --name edge_services iot_edge/services:0.1

你可能感兴趣的:(Node-RED 容器化)