Я пытаюсь приспособить этот для использования traefik v2, но у меня ничего не получается. Все службы могут общаться друг с другом и работают, но я не могу заставить работать маршруты для dev env. Я не понимаю, почему.
docker -compose.dev.command.yml:
version: '3.3'
services:
proxy:
command:
- "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker.endpoint=unix:///var/run/docker.sock"
- "--providers.docker.swarmMode=false"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.traefik.address=:8080"
# backend:
# command: bash -c "while true; do sleep 1; done" # Infinite loop to keep container live doing nothing
backend:
command: /start-reload.sh
docker -compose.dev.labels.yml:
version: '3.3'
services:
proxy:
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.rule=Host(`localhost`)"
- "traefik.http.routers.traefik.rule=PathPrefix(`/dashboard/`)"
- "traefik.http.routers.traefik.entrypoints=traefik"
backend:
labels:
- "traefik.enable=true"
- "traefik.http.routers.backend.entrypoints=web"
- "traefik.http.routers.backend.rule=Host(`localhost`) && PathPrefix(`/redoc`) || PathPrefix(`/api`) || PathPrefix(`/docs`)"
frontend:
labels:
- "traefik.enable=true"
- "traefik.http.routers.frontend.entrypoints=web"
- "traefik.http.routers.frontend.rule=Host(`localhost`) && PathPrefix(`/`)"
docker -compose.dev.networks.yml:
version: '3.3'
services:
backend:
networks:
default:
aliases:
- ${DOMAIN}
Я пробовал практически все, что мог придумать, но я просто не могу заставить это работать. Если я проверяю панель мониторинга traefik, маршрутизаторы ссылаются на правильные службы с правильными IP-адресами, и я могу попробовать вручную, чтобы убедиться, что они работают, но маршруты просто не будут работать.
Что я делать неправильно?