# ─── Dev override — modo desenvolvimento com HMR ───────────────────────────── # # Uso: # docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d --build # # O que muda em relação à produção: # - Backend: monta ./backend ao vivo (node server.js), preservando o # node_modules da imagem (node:20-slim) — código reflete sem rebuild. # - Frontend: builda o stage `builder` (node:20-alpine, que TEM vite + # node_modules no arch musl correto) e roda o vite dev server na 3013 com # Hot Module Replacement. O nginx (default.conf) já faz proxy de / → :3013 # com headers de Upgrade, então o WS de HMR passa. # # ⚠️ Este box serve APENAS dev.scoreodonto.com. A produção (scoreodonto.com) # roda em outro servidor — flipar esta stack para dev NÃO afeta produção. # ───────────────────────────────────────────────────────────────────────────── services: scoreodonto-backend: command: ["node", "server.js"] environment: - NODE_ENV=development volumes: - "/home/deploy/scoreodonto-sessions:/app/sessions" - "/home/deploy/scoreodonto-media:/app/media" - "./backend:/app" # source ao vivo (server.js + newwhats/ do túnel) - "/app/node_modules" # preserva node_modules da imagem (arch correto) - "./plugins:/app/plugins" scoreodonto-frontend: build: context: "." dockerfile: frontend/Dockerfile target: builder # node:20-alpine com vite + node_modules (musl) command: ["npx", "vite", "--port", "3013", "--host", "0.0.0.0"] environment: - NODE_ENV=development - DEV_PUBLIC_HOST=dev.scoreodonto.com # libera host + roteia HMR por wss:443 (vite.config) volumes: - "./frontend:/app/frontend" # source ao vivo (HMR) - "/app/frontend/node_modules" # preserva node_modules da imagem (musl)