Я (как и все мы, кто использовал Docker Cloud) перенес мое приложение в новую среду, поэтому я выбрал Docker Swarm CE.Я использую Traefik в качестве обратного прокси-сервера, и перед миграцией он работал с сегментами так же, как в документации, но по какой-то причине он больше не может работать с сегментами в Swarm.
Мой сервис предоставляет порты 3000 и 3001 для данного путипрефиксы.Вот часть docker-compose.yml для проблемного сервиса:
my-service:
image: my-service-image
deploy:
restart_policy:
condition: on-failure
labels:
traefik.port: 80
traefik.serviceapi.backend: api
traefik.serviceapi.frontend.entryPoints: "http,https"
traefik.serviceapi.frontend.rule: "PathPrefixStrip:/service/api"
traefik.serviceapi.port: 3000
traefik.servicesocket.backend: socket
traefik.servicesocket.frontend.entryPoints: "http,https,ws,wss"
traefik.servicesocket.frontend.rule: "PathPrefixStrip:/service/socket"
traefik.servicesocket.port: 3001
, но по какой-то причине рой не распознает эти сегменты traefik, или я что-то упускаю.
Кто-нибудь имелта же проблема?
Спасибо!
ОБНОВЛЕНИЕ:
traefik:
image: traefik
command:
- "--web"
- "--docker"
- "--docker.swarmMode"
- "--docker.watch"
- "--docker.domain=my-domain"
- "--defaultentrypoints=http,https"
- "--entrypoints=Name:http Address::80 Redirect.EntryPoint:https"
- "--entrypoints=Name:https Address::443 TLS"
- "--acme"
- "--acme.storage=/etc/traefik/acme/acme.json"
- "--acme.entryPoint=https"
- "--acme.domains=my-domain"
- "--acme.httpChallenge.entryPoint=http"
- "--acme.email=email"
- "--logLevel=DEBUG"
deploy:
restart_policy:
condition: on-failure
ports:
- 80:80
- 443:443
- 8080:8080
volumes:
- ./var/run/docker.sock:/var/run/docker.sock
- ./traefik/acme/acme.json:/etc/traefik/acme/acme.json
У меня более 10 служб, работающих должным образом, единственная проблема заключается в том, что я не могу достичь конечных точек моих служб, кажетсяэтот рой не распознает сегменты трафиков.