Dans cette section, notre attention sera dirigée vers le déploiement d’une instance de Træfik à l’aide de Docker & Compose. Nous procéderons ensuite à la configuration et à l’exposition de notre premier service géré à savoir docusaurus.
Nous allons utiliser une solution open source de reverse proxy à savoir Traefik.
Un serveur mandataire inverse, également appelé proxy inverse, est un type de serveur positionné en amont de serveurs web. Contrairement à un serveur proxy traditionnel qui autorise un utilisateur à accéder à Internet, le proxy inverse permet à un utilisateur d’Internet d’accéder à des serveurs interne.
Les plus connus et utilisés sont NGINX, Apache et HAProxy.
Traefik en quelques point:
- il est développé en Go
- il est performant et léger
- il fonctionne parfaitement dans un conteneur Docker
- Træfik propose de l’auto-discovery de services
- Træfik gère le SSL et génère des certificats Let’s Encrypt automatiquement
- il est possible de monitorer les services et d’avoir des détails via une interface d’administration
- Træfik repose sur une architecture à base de middlewares
- il supporte le load-balancing
L’objectif est de permettre la découverte et l’exposition automatique des services que nous souhaitons fournir par Træfik, en assurant une attribution appropriée des URL.
C’est partie…. Il va falloir commencer par déclarer un réseau Docker (ici je l’appel web) dont le but est de permettre aux différents conteneurs à exposer des services, de communiquer avec le routeur Træfik.
$ docker network create web
Se réseau sera appelé dans tous les fichiers docker-compose.yml des services à exposer, y compris celui de notre instance Træfik.
Il va falloir commencer par créer un enregistrement CNAME dans les DNS de votre nom de domaine chez votre registrar. On va créer le sous domaine docusaurus.tartenpion.com
Vous pouvez également rajouter le nom de domaine sur votre Freeebox, en allant dans les paramètres de la freebox -> nom de domaine et ajouter un nom de domaine.
On va créer notre premier fichier docker-compose.yml mais avant un peu de console pour gérer notre espace de travail. Création d’un répertoire traefik pour y déposer le fichier.
$ mkdir traefik && cd traefik
$ nano docker-compose.yml
Et voici la structure de mon fichier avec traefik (vous pouvez également consulter la doc officielle) ainsi que docusaurus avec certificat let’s encrypt et redirection vers le https.
---
version: "3.3"
services:
traefik:
image: "traefik:v2.10"
container_name: "traefik"
command:
- --api.insecure=true
- --providers.docker=true
- --providers.docker.exposedbydefault=false
- --entrypoints.web.address=:80
- --entrypoints.web.http.redirections.entryPoint.to=websecure
- --entrypoints.websecure.address=:443
- --certificatesresolvers.le.acme.httpchallenge=true
- --certificatesresolvers.le.acme.httpchallenge.entrypoint=web
- --certificatesresolvers.le.acme.email=<VotreAdresseEmail>
- --certificatesresolvers.le.acme.storage=/letsencrypt/acme.json
ports:
- "80:80"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- ./letsencrypt:/letsencrypt
docusaurus:
image: awesometic/docusaurus
container_name: docusaurus
labels:
- traefik.enable=true
- traefik.http.routers.docusaurus.rule=Host(`<votreNomDeDomaine`)
- traefik.http.routers.docusaurus.entrypoints=websecure
- traefik.http.routers.docusaurus.tls=true
- traefik.http.routers.docusaurus.tls.certresolver=le
networks:
web:
external: true
Il n’y a plus qu’à se rendre sur l’adresse docusaurus.tartenpion.com pour voir sa page web s’afficher !!
Retrouvez sur l’article suivant comment sauvegarder sa base sql wordpress et la transférer sur son disque freebox.
2 commentaires
Jérome IAvarone - Formateur IA Générative · 16 février 2024 à 23h23
Je suis d’accord avec l’importance de Traefik pour la gestion des services Docker et la configuration automatique des URL. C’est une solution performante et efficace pour simplifier le déploiement. Merci pour ces explications claires et concises.
Installer Docker & Docker compose - DevOps · 18 janvier 2024 à 10h15
[…] Installation de traefik et docusaurus […]