Instalar node-red en docker

Antes de iniciar, asumimos que tiene cierta familiaridad y conocimiento de docker, aunque los comandos que vamos a trabajar son fáciles de entender y usar, pueda que en algún momento del post se pueda perder o no entender.

Si necesitas ayuda con los comandos de docker en tenemos un post en donde explicamos los comandos que estamos trabajando, dejaremos los links para que pueda acceder.

Versiones de contenedores

Para node red y como nos describe la documentación[1], tiene tres tipos contenedores para diferentes sistemas operativos los cuales son:

latest
Utiliza la imagen base oficial Node.JS v8.
slim
Utiliza la imagen base de Alpine Linux.
rpi
Utiliza una imagen base compatible con RPi.

El uso de Alpine Linux reduce el tamaño de la imagen integrada (~ 100 MB frente a ~ 700 MB) pero elimina las dependencias estándar que se requieren para la compilación del módulo nativo. Si desea agregar módulos con dependencias nativas, use la imagen estándar o extienda la imagen delgada con los paquetes que faltan.

En este post nos enfocaremos en docker con la imagen oficial, para las otras imágenes tenemos los otros post donde explicamos a detalle.

Inicio rápido

La instalación de docker la tenemos el el post de hablemos de docker, donde se explica paso a paso como instalar en windows y linux.

Iniciemos con algo sencillo y es ejecutar el contenedor node-red-docker, para ello usamos el comando docker run, veamos el ejemplo:

docker run -it -p 1880:1880 --name mynodered nodered/node-red-docker

Una ves que descargue la imagen si aun no la tenia y termine de iniciar el contenedor, nos mostrara la url para acceder a la interfaz por cualquier navegador que es http://localhost:1880, así como se muestra en la siguiente imagen:

Con esto ya podemos dar inicio a nuestros proyectos, pero el problema es que siempre tenemos que ejecutar el comando mencionado anterior mente, sin mencionar que no hemos configurado el almacenamiento con volúmenes de docker, para ello vamos a hacer uso de una herramienta poderosa que es docker compose.

Creando un docker-compose

Para los que conocen docker sabrán existe una herramienta que es docker-compose facilita la creación de la imagens, servicios, gestión de almacenamiento y la red, ademas de adicionar varias imágenes de otros servicios como bases de datos, servidores de red entre otras.

Vamos a crear un paso a paso con docker-compose muy básico, ya que en futuros proyectos vamos a ir adicionando elementos para un proyecto de Internet de las cosas, por el momento solo vamos a tener lo siguiente:

Vamos a crear el siguiente directorio ejemplo-docker-nodered en la ubicación que mas cómoda le quede, también le pueden colocar el nombre que quieran y dentro crearemos el archivo docker-compose.yml, en este archivo colocamos las siguientes lineas.

#Paso 1
version: '3'

#Paso 2
services:
  
  #Paso 3
  nodered:
    build: ./nodered            #Paso 4
    container_name: 'nodered'   #Paso 5
    ports:                      #Paso 6
      - '1880:1880'

Dentro del directorio ejemplo-docker-nodered vamos a crear otra carpeta que llamaremos nodered, dentro de este directorio crearemos un archivo llamando Dockerfile el cual adicionaremos lo siguiente:

#Paso 7
FROM nodered/node-red-docker
#Paso 8
RUN npm install node-red-dashboard

Nos debe quedar nuestro proyecto de la siguiente forma.

Expliquemos cada una de las lienas:

  1. Vamos a usar la versión 3 de docker composer.
  2. Para este ejercico solo vamos a crear servicios.
  3. Creamos el servicio de nodered
  4. Para este servicio vamos a indicarle que compile el archivo Dockerfile que se encuentra en el directorio nodered.
  5. Damos como nombre nodered al contenedor.
  6. Listamos los puertos 1880 para poder visualizar en el navegador la interfaz de node red.
  7. En el archivo Dockerfile le indicamos que usamos la imagen de node-red-docker.
  8. Instalamos las herramientas y complementos de node-red-dashboard para poder usarlo en el navegador.

Ya solo nos queda ejecutar el siguiente comando y se creara la imagen con el contenedor automáticamente.

docker-compose up

Y cada ves que necesitemos iniciar node red ejecutamos el comando anterior.

Ahora si necesitamos que node red quede corriendo cada vez que inicie un servidor, se puede crear el servicio, pero eso lo veremos en otro post que a la fecha lo estoy redactando, cuando este listo lo publicare y lo comentare en las redes sociales.

[1] nodered https://nodered.org/docs/getting-started/docker, Consultado Agosto 2019

Comentarios

Para dejar el comentario solo necesitamos tu correo que registraste en la pagina, pero si aun no te haz registrado se creara el usuario automaticamente.

Detalle contenido

base-instalar-node-red-docker
Generic placeholder image
Oscar Fernandez Alzate

07, Agosto 2019

467
Categorías
NODE RED