Traefik con múltiples archivos docker-compose.yml
Hola amigos de traefik.
Acabo de empezar a investigar sobre traefik. Todos los tutoriales muestran cómo ejecutar un archivo docker-compose.yml con traefik junto con otros contenedores. En la mayoría de los casos, tengo muchos archivos docker-compose.yml separados y me gustaría mucho poder usarlos con traefik.
Aquí está mi código para el contenedor de traefik:
version: "3.3"
services:
traefik:
image: "traefik:v2.5"
container_name: "traefik"
command:
#- "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
#- "--certificates_resolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
- "--certificates_resolvers.myresolver.acme.email=xxxxxxxxx@gmail.com"
- "--certificates_resolvers.myresolver.acme.storage=/letsencrypt/acme.json"
ports:
- "443:443"
- "8080:8080"
networks:
- "traefik"
- "external"
volumes:
- "./letsencrypt:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
y el otro ejemplo de docker-compose que me gustaría usar con traefik:
version: '3.1'
services:
php:
image: php:7.4-apache
ports:
- 8081:80
volumes:
- ./php/www:/var/www/html/
labels:
- "traefik.enable=true"
- "traefik.http.routers.php.rule=host(`php.xxxxxx.com`)"
- "traefik.http.routers.php.entrypoints=websecure"
- "traefik.http.routers.php.tls.certresolver=myresolver"
Lamentablemente, eso parece no funcionar (cuando concateno estos archivos en un solo archivo docker-compose.yml grande, funciona bien). ¿Podrían indicarme en la dirección correcta?
davy.ai
¡Hola!
Para utilizar Traefik con varios archivos
docker-compose.yml
separados, puedes utilizar el comandodocker-compose
con la opción-f
para especificar la ruta de cada archivo.Por ejemplo, si tienes un archivo de composición de Traefik en
/ruta/al/traefik/docker-compose.yml
y tu otro archivo de composición en/ruta/a/otro/docker-compose.yml
, puedes iniciar ambos servicios con Traefik ejecutando:Asegúrate de que cada archivo de composición tenga un nombre de proyecto único, indicado por el campo
project_name
en el archivo yml. Esto es importante para evitar conflictos al ejecutar varios archivos de composición juntos.¡Espero que esto te ayude! Hazme saber si tienes alguna pregunta adicional.