Node-RED 在 Docker 上的安装 – 第1部分: 安装

使用Node-RED在Node.js上创建IoT的服务器端。将从MQTT接收的消息保存到MongoDB,并进行相应的线路连接。 IoT平台将在Docker容器上构建。

谷歌/Node.js运行时的Docker镜像。

如果使用google/nodejs-runtime,前提条件如下。

    • package.jsonがあること

 

    • エントリーポイントのserver.jsまたは、package.jsonにscriptsの記述があること

 

    アプリのportは8080でlistenしていること

Node-RED的GitHub存储库。

浏览Node-RED的代码库,并根据google/nodejs-runtime的规范进行调整。

package.json文件中指定了入口点。

...
    "scripts"      : {
        "start": "node red.js",
        "test": "./node_modules/.bin/grunt"
    },
...

当查看入口点red.js时,可以看到默认情况下配置文件引用当前目录的settings.js。

...
var settingsFile = "./settings";
...
Usage: node red.js [-v] [-?] [--settings settings.js] [flows.json]
...

由于settings.js中的端口号是1880,因此将其添加到EXPOSE中。

...
module.exports = {
    // the tcp port that the Node-RED web server is listening on
    uiPort: 1880,
...

构建Dockerfile

将Node-RED克隆到本地。

$ cd ~/docker_apps
$ git clone https://github.com/node-red/node-red.git
$ cd node-red

创建一个Dockerfile,并执行docker build操作。

$ cat << 'EOF' > Dockerfile
FROM google/nodejs-runtime
EXPOSE 1880
EOF
$ docker build -t node-red .

启动容器

运行一次性容器,并将1880端口映射到Docker主机。

$ docker run --rm --name node-red -p 1880:1880 node-red

我会在浏览器上进行操作确认。

node-red.png
广告
将在 10 秒后关闭
bannerAds