services:
  app:
    build: .
    # Postgres é externo.
    # Regra do projeto: o .env deve ser passado APENAS como volume.
    # Importante: o compose não lê automaticamente variáveis de um arquivo montado
    # dentro do container. Para funcionar, o container carrega /app/.env no startup.
    ports:
      - "8080:8080"
    volumes:
      - ./.env:/app/.env:ro

    # Permite acessar serviços no host pelo hostname "host.docker.internal".
    # Em Linux, isso exige mapear para o gateway do host.
    # (Docker 20.10+)
    extra_hosts:
      - "host.docker.internal:host-gateway"
