Passer au contenu principal

Créer un container Nodered sous forme de stack

Un container Nodered peut se créer de deux manières :

- directement en tant que Container

- sous forme de stack Docker, au sens Portainer.

Une stack sert à configurer un ou plusieurs containers liés entre eux, sur la base d'un fichier docker-compose.

Pour en savoir plus sur les fichiers docker-compose : https://datascientest.com/docker-compose-tout-savoir

Dans le cas présent, nous automatisons la configuration d'un container Nodered :

- création d'un réseau propre

- définition du port d'accès au container

- labels traefik pour avoir un accès en https

- création d'un volume et lien avec le container

Tutoriel pour créer une nouvelle stack : https://docs.portainer.io/user/docker/stacks/add

Pas à pas dans le cas de Nodered :

1 - Sélectionner "Stacks" puis "Add stack"

image-1734450495402.png


2 - Choisir un nom pour la stack et compléter le champ "Name"

image-1734450592853.png


Copier la configuration ci-dessous dans le block "Webeditor"

version: "3.8"

services:
nodered-test:
image: nodered/node-red:latest
restart: always
env_file:
- stack.env
labels:
- traefik.http.routers.nodered-${app_name}.rule=Host(`${host}`) && PathPrefix(`/nodered-${app_name}/`)
- traefik.http.middlewares.nodered-${app_name}_middleware.stripprefix.prefixes=/nodered-${app_name}/
- traefik.enable=true
- traefik.http.routers.nodered-${app_name}.tls=true
- traefik.http.services.nodered-${app_name}.loadbalancer.server.port=1880
- traefik.http.routers.nodered-${app_name}.middlewares=nodered-${app_name}_middleware@docker
ports:
- ${app_port}:1880
volumes:
- nodered_data:/data
networks:
- reseau
volumes:
nodered_data:
networks:
reseau:
driver: bridge

Changer "nodered-test" par le nom souhaité.

 

3 - Dans la partie "Environment variables", cliquer sur "Advanced mode"

image-1734452898458.png

Dans la fenêtre qui apparaît :

image-1734452978017.png

Copier les valeurs suivantes :

app_name=test
app_port=1835
host=st30.vincennes.fr
app_name => nom de l'application liée à Nodered
app_port => port utilisé par Nodered
host => serveur sur lequel le nodered est installé.

4 - Cliquer sur "Deploy Stack"
5 - Ajouter le réseau créé dans la liste des réseau Traefik
6 - Vérifier le bon fonctionnement du container

Le container apparaît dans la liste sous cette forme :

image-1734453266965.png

Il est accessible via le port choisi et en https sous la forme :

https://<host>/nodered-<app_name>/

https://st30.vincennes.fr/nodered-test/