星路

追寻那一缕星光,在漆黑夜晚前行

0%

docker安装使用Node-RED实践

最近了解到Node-RED,感觉配合HA做自动化挺不错的,于是折腾一番,搭个环境来学习学习。


1.准备

Ubuntu 18.04 64位


2.过程

2.1.安装docker

版本强迫症,所以按官网教程来装最新社区版。

1)安装依赖的工具

1
$ sudo apt-get install apt-transport-https ca-certificates curlsoftware-properties-common

2)获取官方GPG key

1
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudoapt-key add -

3)增加软件源

1
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

一个坑

18.04刚出还没有源,需要手动替换$(lsb_release -cs)为17.10版本的源artful。

4)更新源索引

1
$ sudo apt-get update

5)安装docker-ce

1
sudo apt-get install docker-ce

2.2.设置免sudo执行docker命令

1)将当前用户加入docker组

1
$ sudo gpasswd -a ${USER} docker

2)重启docker

1
$ sudo service docker restart

3)刷新docker组

1
$ newgrp -docker

3.安装Node-RED

1)获取node-red镜像

1
$ docker pull nodered/node-red-docker

2)创建docker-nodered容器,运行node-red镜像

1
$ docker run -d -p 1880:1880 --name docker-nodered --user=root nodered/node-red-docker

root权限

增加--user=root参数以获取root权限。

3)进入Docker容器
1
2
$ docker exec -it docker-nodered /bin/bash
root@容器ID:/usr/src/node-red#

容器环境

执行命令后切换到虚拟机环境了,系统也是Ubuntu。


4.升级node.js

镜像自带的node.js版本是6.x的,而看github项目介绍node-red-contrib-home-assistant插件需求环境是>8.0

注意

后续的"docker#"表示是在docker容器环境操作。

1)检查版本
1
docker# node -v
2)清除node缓存;
1
docker# npm cache clean -f  
3)安装node版本管理工具'n'
1
docker# npm install n -g
4)使用版本管理工具安装指定node或者升级到最新node版本,实测最新版本10.3.0不行,装8.11.2吧
1
docker# n 8.11.2
5)使用node -v查看node版本,如果版本号改变为你想要的则升级成功。
1
docker# node -v

5.安装插件

此步骤也可以在web端操作

1)切换/data目录

1
docker# cd /data

2)安装插件

1
docker# npm install node-red-contrib-home-assistant

3)退出docker容器环境

1
docker# exit

4)重启容器,

1
$ docker restart docker-nodered

容器名

"docker-nodered"是之前docker run --name指定的容器名。