# ============================================================================== # docker-compose.override.yml — Sviluppo locale # Attivo automaticamente con: docker compose up -d # → avvia l'intero stack di sviluppo: Vite dev server (HMR) + backend # (artisan serve) + db + redis + docs + mailpit, dietro Traefik. # # In produzione si usa SOLO il compose base (niente override, niente Traefik): # docker compose -f docker-compose.yml up -d # # Prerequisiti dev: # - rete traefik: docker network create traefik-network # - dyncoll-dev.local in /etc/hosts # # NB router/service Traefik = `dyncoll-dev` per non collidere con la v1 (`dyncoll`). # ============================================================================== services: # Frontend: in dev gira il dev server di Vite (HMR), non l'nginx statico. frontend: build: target: development # stage Vite, non lo stage nginx di produzione ports: - "${APP_FRONTEND_DEVPORT}:5173" volumes: - ./frontend:/app # sorgente live → HMR su ogni modifica - /app/node_modules # volume anonimo: i node_modules musl dell'immagine # schermano quelli glibc dell'host (mai bind-montati) networks: - internal - traefik-network labels: - "traefik.enable=true" - "traefik.http.routers.dyncoll-dev.rule=Host(`dyncoll-dev.local`)" - "traefik.http.routers.dyncoll-dev.entrypoints=websecure" - "traefik.http.routers.dyncoll-dev.tls=true" - "traefik.http.services.dyncoll-dev.loadbalancer.server.port=5173" - "traefik.docker.network=traefik-network" # Backend: in dev usa `artisan serve` (errori leggibili, niente supervisord/nginx). backend: build: target: development command: ["php", "artisan", "serve", "--host=0.0.0.0", "--port=8000"] # Mailpit: SMTP sink di sviluppo. Cattura tutte le mail (nessuna spedizione reale). # SMTP su 1025 (raggiungibile dal backend come host `mailpit`), Web UI su 8025. mailpit: image: axllent/mailpit:latest container_name: dyncoll_mailpit restart: unless-stopped networks: - internal ports: - "127.0.0.1:8025:8025" # Web UI: http://localhost:8025 labels: - "com.docker.compose.project=dyncoll-project" networks: traefik-network: external: true