Files
dyncoll-dev/docker-compose.override.yml
Giuseppe Naponiello 36bcc9a842 first commit
2026-06-14 19:01:02 +02:00

62 lines
2.3 KiB
YAML

# ==============================================================================
# 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