Из того, что я вижу, это выглядит как это :
docker-traefik.yml
:
version: '3'
services:
traefik:
image: traefik
command: --docker # enable Docker Provider
# use Docker Swarm Mode as data provider
--docker.swarmmode
ports:
- "80:80"
volumes:
# for it to be able to listen to Docker events
- /var/run/docker.sock:/var/run/docker.sock
docker-whoami.yml
:
version: '3'
networks:
traefik_default:
external: true
services:
whoami:
image: containous/whoami
networks:
# add to traefik network
- traefik_default
deploy:
labels:
# whoami is on port 80
- "traefik.port=80"
# whoami is on traefik_default network
- "traefik.docker.network=traefik_default"
# when to forward requests to whoami
- "traefik.frontend.rule=Host:example.com"
Позвольте мне процитировать документацию здесь:
Обязательные надписи:
traefik.frontend.rule
traefik.port
- Без этогожурналы отладки покажут, что эта служба намеренно отфильтрована. traefik.docker.network
- без этого может произойти 504.
...
traefik.docker.network
Переопределяет стандартную сеть докеров, используемую для соединений с контейнером.[1]
traefik.port=80
Регистрирует этот порт.Полезно, когда контейнер предоставляет несколько портов.
Но почему он не может просто взять открытые порты со значением по умолчанию traefik.port
?И из того, что я вижу, это работает без traefik.docker.network
(то есть, если traefik_default
является сетью первого сервиса).Когда я получу 504?