# Docker

# Nodered



# 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](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](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](https://formagent.vincennes.fr/uploads/images/gallery/2024-12/scaled-1680-/image-1734450495402.png)](https://formagent.vincennes.fr/uploads/images/gallery/2024-12/image-1734450495402.png)

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

[![image-1734450592853.png](https://formagent.vincennes.fr/uploads/images/gallery/2024-12/scaled-1680-/image-1734450592853.png)](https://formagent.vincennes.fr/uploads/images/gallery/2024-12/image-1734450592853.png)

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

```YAML
version: "3.8"<br></br><br></br>services:<br></br>  nodered-test:<br></br>    image: registry.vincennes.fr/images-docker/nodered-custom:latest<br></br>    restart: always<br></br>    env_file:<br></br>      - stack.env<br></br>    labels:<br></br>      - traefik.http.routers.nodered-${app_name}.rule=Host(`${host}`) && PathPrefix(`/nodered-${app_name}/`)<br></br>      - traefik.http.middlewares.nodered-${app_name}_middleware.stripprefix.prefixes=/nodered-${app_name}/<br></br>      - traefik.enable=true<br></br>      - traefik.http.routers.nodered-${app_name}.tls=true<br></br>      - traefik.http.services.nodered-${app_name}.loadbalancer.server.port=1880<br></br>      - traefik.http.routers.nodered-${app_name}.middlewares=nodered-${app_name}_middleware@docker<br></br>    ports:<br></br>      - ${app_port}:1880<br></br>    volumes:<br></br>      - nodered_data:/data<br></br>    networks:<br></br>      - reseau<br></br>volumes:<br></br>  nodered_data:<br></br>networks:<br></br>  reseau:<br></br>    driver: bridge
```

<p class="callout warning">Changer "nodered-test" par le nom souhaité.</p>

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

[![image-1734452898458.png](https://formagent.vincennes.fr/uploads/images/gallery/2024-12/scaled-1680-/image-1734452898458.png)](https://formagent.vincennes.fr/uploads/images/gallery/2024-12/image-1734452898458.png)

Dans la fenêtre qui apparaît :

[![image-1734452978017.png](https://formagent.vincennes.fr/uploads/images/gallery/2024-12/scaled-1680-/image-1734452978017.png)](https://formagent.vincennes.fr/uploads/images/gallery/2024-12/image-1734452978017.png)

Copier les valeurs suivantes :

```INI
app_name=test<br></br>app_port=1835<br></br>host=st30.vincennes.fr
```

<div class="col-sm-12" id="bkmrk-app_name-%3D%3E-nom-de-l"><div class="col-sm-12"><div class="cm-theme app-react-components-CodeEditor-module__root"><div class="cm-editor ͼ1 ͼ2 ͼ4 ͼqy ͼ15"><div class="cm-scroller" tabindex="-1"><div aria-multiline="true" autocapitalize="none" autocorrect="off" class="cm-content" contenteditable="true" role="textbox" spellcheck="false" style="tab-size: 4;" translate="no">app_name =&gt; nom de l'application liée à Nodered  
<div class="cm-line">app_port =&gt; port utilisé par Nodered</div><div class="cm-line">host =&gt; serveur sur lequel le nodered est installé.</div><div class="cm-line">  
</div><div class="cm-line">4 - Cliquer sur "Deploy Stack"</div><div class="cm-line">  
</div><div class="cm-line">5 - Ajouter le réseau créé dans la liste des réseau Traefik</div><div class="cm-line">  
</div><div class="cm-line">6 - Vérifier le bon fonctionnement du container</div><div class="cm-line">  
</div><div class="cm-line">Le container apparaît dans la liste sous cette forme :</div><div class="cm-line">  
</div></div></div></div></div></div></div>[![image-1734453266965.png](https://formagent.vincennes.fr/uploads/images/gallery/2024-12/scaled-1680-/image-1734453266965.png)](https://formagent.vincennes.fr/uploads/images/gallery/2024-12/image-1734453266965.png)

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

https://&lt;host&gt;/nodered-&lt;app\_name&gt;/

[https://st30.vincennes.fr/nodered-test/](https://st30.vincennes.fr/nodered-test/)

