es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    ¡Hola!

    Para utilizar Traefik con varios archivos docker-compose.yml separados, puedes utilizar el comando docker-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:

    docker-compose -f /ruta/al/traefik/docker-compose.yml -f /ruta/a/otro/docker-compose.yml up
    

    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.

Comments are closed.