Node-RED 容器化

作者: 梅干菜烧饼不加肉 | 来源:发表于2021-12-23 18:21 被阅读0次

    建立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 容器化

        本文链接:https://www.haomeiwen.com/subject/oixkqrtx.html