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
我会在浏览器上进行操作确认。