Utiliser Traefik 2 en dev avec Docker
Auteur : Philippe Le Van - @plv@framapiaf.org
Date : 28 mars 2022
Introduction
Quand on est développeur web et qu'on utilise docker, c'est assez magique d'utiliser traefik2.
Traefik est un reverse proxy qui permet en dev de créer une URL automatiquement dès qu'un container est créé.
Ce tuto est séparé en 2 parties :
- La première donne les étapes de l'installation de l'outil traefik 2 sur votre poste.
- La 2e partie montre le lancement de 2 services docker (un très simple et un autre un peu plus avancé). On voit ainsi les services apparaître dans la console de traefik2. L'URL créée est fonctionnelle dans un navigateur.
Installation et lancement de traefik 2
On utilise docker-compose pour installer traefik 2.
Créer un répertoire traefik sur votre disque.
Dans ce répertoire, créer le fichier docker-compose.yml suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
Lancer traefik :
1 2 |
|
Voir si ça marche :
accès à la console traefik : http://localhost:8080
Note : dans le docker-compose.yml, la ligne restart: unless-stopped
permet au service d'être relancé au redémarrage de votre PC.
Lancer un service docker et voir l'URL générée
En général on n'a rien à configurer.
cas d'un nginx simple
Créer un répertoire mytest et un fichier docker-compose.yml à l'intérieur
1 2 3 4 |
|
le lancer avec docker-compose up -d
Aller sur http://localhost:8080. Le service a dû apparaître dans la console traefik :
L'URL créée est du type : http://nom_du_service.nom_du_repertoire.localhost
Vous pouvez aller voir le site nginx qu'on vient de créer sur http://app.mytest.localhost
cas un peu plus complexe
Parfois le cas est un peu plus complexe, et on doit indiquer pour un container donné quelques configurations supplémentaires. Ca peut concerner les cas suivants :
- le port du container lancé n'est pas exposé par le Dockerfile ou bien plusieurs ports sont exposés et traefik ne choisit pas le bon
- on veut choisir le nom de domaine créé ou bien on veut plusieurs domaines qui répondent
- ...
Pour ajouter ces confs, on peut utiliser les labels docker.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Références
La doc officielle du proxy traefik 2 est ici : https://doc.traefik.io/traefik/
Versions
- 28 mars 2022 : quelques corrections dans la rédaction.
- 30 mars 2021 : création