Partage
  • Partager sur Facebook
  • Partager sur Twitter

Docker et Traefik: séparation docker-compose

    28 décembre 2019 à 17:45:29

    Bonjour je viens vers vous car je suis confronté à un problème dans mon apprentissage de Traefik avec Docker.

    En autodidacte, je suis le tutoriel présent dans la documentation officielle de Traefik pour faire tourner un service whoami en https:

    https://docs.traefik.io/user-guides/docker-compose/acme-dns/

    En suivant le tuto, mes deux services (traefik et whoami) sont dans un seul et même fichier docker-compose.yml mais j’aimerais les mettre chacun dans un fichier séparé pour avoir quelque chose comme ça :

    ls -lrt ./
    ./traefik:
    total 8
    drwxr-xr-x 2 root    root    4096 Dec 28 15:08 letsencrypt
    -rw-rw-r-- 1 utilisateur utilisateur 1569 Dec 28 16:47 docker-compose.yml
    
    ./whoami:
    total 4
    -rw-rw-r-- 1 utilisateur utilisateur 442 Dec 28 16:51 docker-compose.yml
    

    A terme, je souhaite par exemple créer un répertoire wordpress avec son propre docker-compose plutôt que de tout entasser dans celui de Traefik.

    Mon problème est que après avoir séparé mon yml initial (contenant traefik + whoami) en deux, je up traefik puis whoami, et je tombe en « Gateway Timeout » dans mon navigateur web (ce qui n’arrivait pas avant la séparation).

    Voici les fichiers:

    $ cat traefik/docker-compose.yml
    version: "3.3"
    services:
      reverse-proxy:
        image: "traefik:v2.0"
        container_name: "traefik"
        command:
          #- "--log.level=DEBUG"
          - "--global.sendanonymoususage=false"
          #- "--api.insecure=true"
          - "--providers.docker=true"
          - "--providers.docker.exposedbydefault=false"
          - "--entrypoints.web.address=:80"
          - "--entrypoints.websecure.address=:443"
          - "--certificatesresolvers.mydnschallenge.acme.dnschallenge=true"
          - "--certificatesresolvers.mydnschallenge.acme.dnschallenge.provider=ovh"
          #- "--certificatesresolvers.mydnschallenge.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
          - "--certificatesresolvers.mydnschallenge.acme.email=monadressemail.fr"
          - "--certificatesresolvers.mydnschallenge.acme.storage=/letsencrypt/acme.json"
        ports:
          - "80:80"
          - "443:443"
          - "8080:8080"
        environment:
          - "OVH_ENDPOINT=xxx"
          - "OVH_APPLICATION_KEY=xxxx"
          - "OVH_APPLICATION_SECRET=xxxx"
          - "OVH_CONSUMER_KEY=xxxx"
        volumes:
          - "./letsencrypt:/letsencrypt"
          - "/var/run/docker.sock:/var/run/docker.sock:ro"
        labels:
          - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
          - "traefik.http.routers.redirs.rule=hostregexp(`{host:.+}`)"
          - "traefik.http.routers.http-catchall.entrypoints=web"
          - "traefik.http.routers.http-catchall.middlewares=redirect-to-https"

    et

    version: "3.3"
    services:
      whoami:
        image: "containous/whoami"
        container_name: "simple-whoami-service"
        labels:
          - "traefik.enable=true"
          - "traefik.http.middlewares.whoami.redirectscheme.scheme=https"
          - "traefik.http.routers.whoami.rule=Host(`xxx.fr`)"
          - "traefik.http.routers.whoami.entrypoints=websecure"
          - "traefik.http.routers.whoami.tls.certresolver=mydnschallenge"
    

    Au passage, impossible d'avoir une redirection http vers https mais ça c'est un autre problème.

    Merci d'avance pour les retours.


    • Partager sur Facebook
    • Partager sur Twitter

    Docker et Traefik: séparation docker-compose

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown