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-puppeteer:test:
  image: registry.vincennes.fr/images-docker/nodered-puppeteer:nodered/node-red:latest
    container_name: nodered-scorm
  restart: always
env_file:
- stack.env
labels:
  - traefik.http.routers.nodered-scorm.${app_name}.rule=Host(`sd11.vincennes.fr`${host}`) && PathPrefix(`/nodered-scorm/${app_name}/`)
  - traefik.http.middlewares.nodered-scorm_middleware.${app_name}_middleware.stripprefix.prefixes=/nodered-scorm/${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-scorm.tls=true
      - traefik.http.services.nodered-scorm.loadbalancer.server.port=1880
      - traefik.http.routers.nodered-scorm.${app_name}.middlewares=nodered-scorm_middleware@docker${app_name}_middleware@docker
  ports:
    - 1946:${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/