Установка Node-RED в docker — альтернативный способ установки

From Wiren Board
This is the approved revision of this page, as well as being the most recent.

Описание

Инструкция прислана пользователем, мы её не проверяли. Используйте на свой страх и риск. Инструкцию по работе с Node-RED на контроллере находится на странице Установка Node-RED на контроллер Wiren Board.

Здесь приведён альтернативный вариант — установка через docker. Убедитесь что понимаете смысл и выполняемые приведенными командами изменения.

Установка

Для установки Node-RED на контроллер Wiren Board подключитесь к нему по SSH и введите в консоль несколько команд.

  1. Установите docker по инструкции.
  2. Создайте каталог под служебные файлы:
    mkdir /mnt/data/root/nodered
    chown -R 1000:1000 /mnt/data/root/nodered
    chmod -R 777 /mnt/data/root/nodered
    
  3. Запустите образ nodered — docker автоматически загрузит его из интернет и запустит:
    docker run -d --name nodered --privileged --restart=unless-stopped -e TZ=Europe/Moscow -v /mnt/data/root/nodered:/data -e NODE_OPTIONS="--max_old_space_size=256"  --network=host nodered/node-red
    

После установки и запуска, откройте браузер и введите адрес своего контроллера в сети и порт 1880. Например: http://192.168.42.1:1880 Консоль можно закрыть.

Решение проблем

Иногда, если во флоу есть ошибка, то веб-интерфейс Node-RED может перестать загружаться, в этом случае нужно подключиться к контроллеру по SSH и посмотреть логи контейнера nodered.

docker logs nodered

Если в логах будет видна ошибка во флоу, то надо пересоздать контейнер с safe-запуском:

  1. Остановить службу, если она запущена:
    docker stop nodered ; docker rm nodered && docker run -d --name nodered --privileged --restart=unless-stopped -e TZ=Europe/Moscow -v /mnt/data/root/nodered:/data -e NODE_OPTIONS="--max_old_space_size=256"  --network=host --entrypoint "/bin/bash" nodered/node-red -c 'npm start -- --userDir /data --safe'
    
  2. После этой команды Node-Red запустится в безопасном режиме и не запустит деплой при старте. После исправления ошибки надо снова пересоздать контейнер с правильной командой.
    docker stop nodered ; docker rm nodered && docker run -d --name nodered --privileged --restart=unless-stopped -e TZ=Europe/Moscow -v /mnt/data/root/nodered:/data -e NODE_OPTIONS="--max_old_space_size=256"  --network=host nodered/node-red
    

Для доступа в контейнер (например, для установки и использования node-red-admin) можно воспользоваться такой командой:

docker exec -it nodered /bin/bash

После этого можно установить node-red-admin:

npm install --location=global --unsafe-perm node-red-admin