Utilizar Docker & Traefik para su entorno de desarrollo 🐳

Sommaire
Bonjour à tous ! 👋
Nous allons aujourd'hui voir comment utiliser Docker et Traefik afin d'avoir des noms de domaines personnalisés pour nos applications en développement. Pour se faire, nous allons utiliser traefik.
Traefik est un reverse proxy / load balancer. Il dispose de plein de fonctionnalités cool comme l'auto discovery, une configuration simplifiée pour des metrics ou encore une gestion facilité des certificats SSL ( let's encrypt, ACME etc..) ce qui en fait un allié de choix pour pas mal de services d'orchestration de container ( Kubernetes, Mesos ... ).
Nous allons aujourd'hui voir comment on peut faire fonctionner tout ça ensemble.
Instalación y configuración de dnsmasq
Dnsmasq es un programa que permite proporcionar servicios DNS. Lo configuraremos para que redirija todas las solicitudes HTTP de la forma *.test hacia localhost.
Instalación en mac ( via brew ) :
brew install dnsmasq
Ajout de la configuration de redirection :
sudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolver/test'
sudo echo 'address=/.test/127.0.0.1' > $(brew --prefix)/etc/dnsmasq.conf
Redémarrer le service :
sudo launchctl unload -w /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
Instalación y configuración de traefik
Aquí hay dos archivos de configuración necesarios para hacer funcionar traefik. Aquí utilizo un archivo docker-compose pero es totalmente posible lanzar este contenedor desde la línea de comandos. El segundo archivo incluye la configuración mínima para que traefik funcione.
Como puede ver, las configuraciones de enrutamiento se hacen gracias a las etiquetas. Encontrará la lista de directivas en la documentación de Traefik ( documentación de Traefik )
docker-compose-traefik.yml
version: "3"
services:
proxy:
image: traefik
networks:
- traefik
ports:
- "80:80"
- "8080:8080"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "./traefik.toml:/traefik.toml"
restart: unless-stopped
labels:
- "traefik.frontend.rule=Host:traefik.test"
- "traefik.port=8080"
- "traefik.backend=traefik"
- "traefik.frontend.entryPoints=http"
networks:
traefik:
external:
name: traefik
traefik.toml
defaultEntryPoints = ["http"]
[entryPoints]
[entryPoints.http]
address = ":80"
[web]
address = ":8080"
[web.auth.basic]
users = ["admin:$apr1$o1HmXW0i$wWgVewL1kLu9gaqmMDh6u/"]
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "test"
watch = true
exposedbydefault = true
Puede ahora ejecutar la commande docker-compose -f docker-compose-traefik.yml up para démarrer el container.
Una vez terminada la operación, diríjase en su navegador a la siguiente dirección : http://traefik.test.
En el archivo de configuración traefik.toml hay una autenticación básica configurada ( usuario: admin, contraseña: admin ).
¡Después de eso debería ver el magnífico panel de control de Traefik! 🎉🎊
Uso de traefik
Ahora podrá probar Traefik. Para ello, usaremos la imagen tutum/hello-world.
docker run --network=traefik --label="traefik.enable=true" --label="traefik.frontend.rule=Host:hello-world.test" --label="traefik.backend=hello-world" --label="traefik.port:26000" --label="traefik.frontend.entryPoints=http" -p 26000:80 tutum/hello-world
A continuación, con su navegador, diríjase a http://hello-world.test/
¡Y eso es todo! 👏
¿Qué sigue ?
En el próximo artículo veremos cómo generar un certificado SSL para usar HTTPS en su entorno de desarrollo.
Recursos y enlaces útiles
Comentarios
Cargando...