como estou com dificuldades para encaminhar o IP real para os aplicativos docker, agora estou executando o docker traefik no modo de rede host.
traefik e serviços funcionam. Aqui está minha configuração
docker-compose.yaml:
---
services:
traefik:
image: traefik:latest
container_name: traefik
network_mode: host
volumes:
- ./traefik.yaml:/traefik.yaml
- ./letsencrypt/:/letsencrypt/
- /run/docker.sock:/var/run/docker.sock:ro
labels:
- traefik.enable=true
- traefik.http.routers.traefik.rule=Host(`frontal.cestpasla.norhere.net`)
- traefik.http.routers.traefik.entrypoints=websecure
- traefik.http.routers.traefik.service=api@internal
- traefik.http.services.traefik-0000traefik.loadbalancer.server.port=8080
- traefik.http.routers.traefik.tls.certresolver=myresolver
- traefik.http.routers.traefik.middlewares=traefik-auth
- traefik.http.middlewares.traefik-auth.basicauth.users=me:encryptedpassword
O arquivo yaml estático do traefik:
---
api:
dashboard:
providers:
docker:
exposedByDefault: false
entrypoints:
web:
address: 10.20.0.2:80
websecure:
address: 10.20.0.2:443
certificatesresolvers:
myresolver:
acme:
tlschallenge: true
email: [email protected]
storage: /letsencrypt/acme.json
#log:
# level: DEBUG
A linha problemática é:
- traefik.http.services.traefik-0000traefik.loadbalancer.server.port=8080
O nome do serviço do painel é traefik-0000traefik
, provavelmente porque o arquivo docker-compose está em uma pasta chamada 0000.traefik
. Não me lembro em que ponto dos meus testes eu tive que adicionar essa linha de repente, mas a partir de agora, no modo host de rede, se eu não usar essa linha, posso ver esse erro nos logs do docker:
2025-03-12T11:25:38Z ERR error="service \"traefik-0000traefik\" error: port is missing" container=traefik-0000traefik-09ccfe569180f81f22b135fd75082ed017ce95a7dc0ade1ab5a7e2bfbd960886 providerName=docker
A questão:
Se eu precisar usar uma linha de configuração para o serviço do painel, posso pelo menos escolher o nome do serviço, digamos traefik_dashboard
, ou algo parecido? E como?