Hi, I've been trying for days to understand why two of my containers can't be accessed by domain, only by IP, they're postgrest and coquitts, I'll post the stack of traefik and postrest. If anyone please knows how I can make it work, I have 17 containers working. but this two does not work for dns.
my traefik
version: "3.7"
services:
traefik:
image: traefik:v2.11.2
command:
- "--api.dashboard=true"
- "--providers.docker.swarmMode=true"
- "--providers.docker.endpoint=unix:///var/run/docker.sock"
- "--providers.docker.exposedbydefault=false"
- "--providers.docker.network=RedeLocal" # Nome da rede interna
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entryPoint.scheme=https"
- "--entrypoints.web.http.redirections.entrypoint.permanent=true"
- "--entrypoints.websecure.address=:443"
- "--entrypoints.websecure.http.tls=true"
- "--entrypoints.traefik.address=:8081" # Porta para o dashboard
# Comentado para testar sem TLS no dashboard
# - "--entrypoints.traefik.http.tls=true"
- "--certificatesresolvers.letsencryptresolver.acme.httpchallenge=true"
- "--certificatesresolvers.letsencryptresolver.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.letsencryptresolver.acme.storage=/etc/traefik/letsencrypt/acme.json"
- "--certificatesresolvers.letsencryptresolver.acme.email=helio11soares@gmail.com" # Email para receber as notificações
- "--log.level=DEBUG"
- "--log.format=common"
- "--log.filePath=/var/log/traefik/traefik.log"
- "--accesslog=true"
- "--accesslog.filepath=/var/log/traefik/access-log"
deploy:
placement:
constraints:
- node.role == manager
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.redirect-https.redirectscheme.scheme=https"
- "traefik.http.middlewares.redirect-https.redirectscheme.permanent=true"
- "traefik.http.routers.http-catchall.rule=Host({host:.+}
)"
- "traefik.http.routers.http-catchall.entrypoints=web"
- "traefik.http.routers.http-catchall.middlewares=redirect-https@docker"
- "traefik.http.routers.http-catchall.priority=1"
- "traefik.http.routers.traefik.rule=Host(tf.utracsistemas.com.br
)" # Domínio para o dashboard
- "traefik.http.routers.traefik.entrypoints=traefik"
- "traefik.http.services.traefik.loadbalancer.server.port=8081" # Porta interna para o dashboard
volumes:
- "vol_certificates:/etc/traefik/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
ports:
- target: 80
published: 80
mode: host
- target: 443
published: 443
mode: host
- target: 8081
published: 8081
mode: host
networks:
- RedeLocal
volumes:
vol_shared:
external: true
name: volume_swarm_shared
vol_certificates:
external: true
name: volume_swarm_certificates
networks:
RedeLocal:
external: true
name: RedeLocal
my stack postgrest
version: '3.6'
services:
postgrest:
image: postgrest/postgrest
networks:
- RedeLocal
environment:
PGRST_DB_URI: postgresql://postgres:000000000000000000000000000000000000000@postgres:5432/teste
PGRST_DB_SCHEMA: public
PGRST_OPENAPI_SERVER_PROXY_URI: http://127.0.0.1:5000
PGRST_JWT_SECRET: "0000000000000000000000000000000000000000000000000000000000"
ports:
- "3030:3030" # Expõe a porta 3000 do container para a máquina host
labels:
- io.portainer.accesscontrol.users=admin
- traefik.enable=true
- traefik.http.routers.postgrest.rule=Host(postgresres.utracsistemas.com.br
)
- traefik.http.routers.postgrest.entrypoints=websecure
- traefik.http.routers.postgrest.tls.certresolver=letsencryptresolver
- traefik.http.services.postgrest.loadbalancer.server.port=3030
- traefik.http.services.postgrest.loadbalancer.passHostHeader=true
- traefik.http.routers.postgrest.service=postgrest
networks:
RedeLocal:
external: true
name: RedeLocal
external: true