pipou
pipou

Reputation: 360

Traefik configuration inside docker-compose with subdomains

I try to setup subdomains configuration using traefik but is doesn't work. This is my docker-compose config :

traefik:
  image: "traefik:v2.0.0-rc3"
  container_name: "traefik"
  command:
    - "--api.insecure=true"
    - "--providers.docker=true"
    - "--providers.docker.exposedbydefault=false"
    - "--entrypoints.web.address=:80"
  ports:
    - "80:80"
    - "8282:8080"
  volumes:
    - "/var/run/docker.sock:/var/run/docker.sock:ro"

whoami:
  image: "containous/whoami"
  container_name: "simple-service"
  labels:
    - "traefik.enable=true"
    #- "traefik.http.routers.whoami.rule=Host(`whoami.mydomain.com`)"
    - "traefik.http.routers.whoami.entrypoints=web"
    - "traefik.frontend.port=80"
    - "traefik.frontend.rule=Host:whoami.mydomain.com"

When I replace the host by mydomain.com/whoami it does works correctly. I also tried to add the subdomain to /etc/hosts file but nothing changes when I go to whoami.mydomain.com nothing appears.

Do you have suggestions ?

Thanks.

Upvotes: 0

Views: 989

Answers (2)

homer
homer

Reputation: 902

For the record,

If append the following content to my /etc/hosts:

127.0.0.1       whoami.mydomain.com

the following snippet works on my machine:

version: '3'

services:
  traefik:
    image: "traefik:v2.5"
    container_name: "traefik"
    command:
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
    ports:
      - "80:80"
      - "8282:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"

  whoami:
    image: "containous/whoami"
    container_name: "simple-service"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoami.rule=Host(`whoami.mydomain.com`)"

An yours with traefik:2.5 answers with a 404 not found on my machine.

Note: the port 8282 on my machine gives nothing (which is normal as nothing is listening in port 8080 in the container).

Upvotes: 0

Rick Burris
Rick Burris

Reputation: 11

I'm not an expert with Docker or Traefik, but I have been doing some work in that regard. The only thing I see that looks a bit weird to be is that you may want to throw a common network option on both to ensure they are sharing, such as:

networks:
- web

The only other guess would be if you are missing the DNS entry for whoami.yourdomain.com

Upvotes: 1

Related Questions