Hello ,
traefik managing / routing all containers running from same stack(docker-compose1),
all belong to "dockers_default" network.
on other stack - docker-compose2,
i added traefik labels by same fashion i use in first stack + bound these stack also to "dockers_default" network .
And it doesn't work - Getting error 502/522 on browser.
couldn't find any error on traefilk/access.log
( added CNAME on cloudflare as usual)
1.What im doing wrong?
from traefik dashboard i do see it added on routing same for load balancer.
2.on docker-compose 2 :
I'm running webserver which provide different functionalities on each path i.e:
192.168.1.112:8111/mig
192.168.1.112:8111/tig
i would like to sperate routing rules:
i.e:
mig.MYDOMAIN.com will route to --> 192.168.1.112:8111/mig
tig.MYDOMAIN.com will route to --> 192.168.1.112:8111/tig
I saw some traefik configuration which support similar cases but all coming from same stask,
i'd like to keep current routing on docker-compose1 ,
on the other docker-compose , add the option for routing per each subdomain as explain in#2.
docker-compose1.yml
Traefik configured as
services:
traefik:
image: traefik:v2.4.5
container_name: traefik
restart: always
command:
- --log.level=INFO
- --log.filePath=etc/traefik/log/traefik.log
- --accessLog.filePath=etc/traefik/log/access.log
- --accessLog.bufferingSize=100
#
- --providers.docker=true
- --providers.docker.exposedbydefault=false
- --api
#allow access on 8888
- --api.insecure=true
- --entrypoints.traefik.address=:8888
- --entrypoints.web.address=:80
- --entrypoints.web.http.redirections.entrypoint.to=websecure
#- --entryPoints.web.forwardedHeaders.insecure=true
# - --entryPoints.web.forwardedHeaders.trustedIPs=127.0.0.1/32,172.29.0.0/16
- --entrypoints.web.http.redirections.entrypoint.scheme=https
- --entrypoints.websecure.address=:443
- --entrypoints.websecure.http.tls.certresolver=myresolver
#- --entryPoints.websecure.forwardedHeaders.insecure=true
#- --entryPoints.websecure.forwardedHeaders.trustedIPs=127.0.0.1/32,172.29.0.0/16
- --certificatesresolvers.myresolver.acme.dnschallenge=true
- --certificatesresolvers.myresolver.acme.email=${CF_API_EMAIL}
# TEST MODE
# - --certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory
- --certificatesresolvers.myresolver.acme.storage=acme.json
- --certificatesresolvers.myresolver.acme.dnschallenge.provider=cloudflare
# specify dynamic configuration file:
- --providers.file.filename=/dynamic.yaml
- --providers.file.watch=true
#usually without it
# network_mode: host
ports:
- 80:80
- 443:443
- 8888:8888
environment:
- CF_API_EMAIL=${CF_API_EMAIL}
- CF_API_KEY=${CF_API_KEY}
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik/acme.json:/acme.json
- ./traefik/:/etc/traefik/log/
#for accessing non docker application (qnap)
- ./traefik/dynamic.yaml:/dynamic.yaml
labels:
traefik.enable: true
# Dashboard
traefik.http.routers.traefik.rule: Host(`traefik.${DOMAINNAME}`)
traefik.http.routers.traefik.entrypoints: websecure
traefik.http.routers.traefik.service: api@internal
traefik.http.routers.traefik.middlewares: auth
traefik.http.middlewares.auth.basicauth.users: ${TRAEFIK_USER}:${TRAEFIK_PASS}
All the dockers which configure by this docker compose ,routing by traefik perfectly with no issue ,
On the other stack ,
docker-compsoe_2.yml
i added only traefik labels as:
version: '3.7'
services:
webserver:
build: .
container_name: webserver
command: uvicorn main:app --host 0.0.0.0 --port 8000 --reload
volumes:
- ./backend/webserver:/webserver
ports:
- "${WEBSERVER_PORT:-8111}:8000"
depends_on:
- mongo_db
networks:
- dockers_default
labels:
traefik.enable: true
traefik.http.routers.mig.rule: Host(`mig.${DOMAINNAME}`)
traefik.http.routers.mig.entrypoints: websecure
traefik.http.services.mig.loadbalancer.server.port: 8111
COMPOSE_PATH: ${PWD}
## here i'd like adding the routing functionality mention in #2
networks:
dockers_default:
external: true