Search code examples
docker-swarmdocker-swarm-modetraefik

Running traekif on swarm mode with a multiple ports backend


I’m having some issues using Traefik in a Swarm. With the following configuration I’m expecting traffic on port 80 to reach the traefik service and then be dispatched it a dedicated port on the proxy service but it seems the traffic does not go through.

traefik: image: traefik:1.3.5 command: --web --docker --docker.swarmmode --docker.watch --docker.domain=app.dev --logLevel=DEBUG ports: - "80:80" - "8080:8080" volumes: - /var/run/docker.sock:/var/run/docker.sock - /dev/null:/traefik.toml deploy: replicas: 1 placement: constraints: [node.role == manager] restart_policy: condition: on-failure

proxy: image: 'myapp/proxy' deploy: replicas: 1 labels: - "traefik.backend=proxy" - "traefik.web.frontend.rule=Host:www.app.dev" - "traefik.web.port=8000" - "traefik.wss.frontend.rule=Host:wss.app.dev" - "traefik.wss.protocol=ws" - "traefik.wss.port=9002" - "traefik.api.frontend.rule=Host:api.app.dev" - "traefik.api.port=8002" - "traefik.lnr.frontend.rule=Host:lnr.app.dev" - "traefik.lnr.port=9001" restart_policy: condition: on-failure

I have the following entry in the logs:

app_traefik.1.84giy7wqf3n6@moby    | time="2017-08-08T11:27:34Z" level=debug msg="Filtering container without port and no traefik.port label app_proxy.1"

I get a 404 when I send a request to the app:

curl -H "Host:www.app.dev" http://localhost
404 page not found

Is the multi ports for a single backend taken into account in the context of a Swarm as it is when run with Docker Compose ?

Any idea what I’m missing here ?


Solution

  • Figured out it requires to add traefik.port and traefik.frontend.rule even if they are not used. https://github.com/containous/traefik/issues/1840