services: # Reverse Proxy per instradare il traffico proxy: build: ./proxy ports: - "8080:80" # Porta esposta sull'host:porta interna al container depends_on: - backend - frontend restart: unless-stopped # Backend FastAPI backend: build: ./packages/backend volumes: - ./packages/backend:/app # Hot-reloading del codice - ./uploads:/app/uploads # Volume condiviso per i file caricati env_file: - .env depends_on: - db # Non esporre la porta 8000 all'host, ci pensa il proxy # ports: # - "8000:8000" # Frontend React frontend: build: context: ./packages/frontend # Passiamo l'URL dell'API come build argument args: VITE_API_URL: ${VITE_API_URL} volumes: - ./packages/frontend:/app # Hot-reloading del codice # Trucco per evitare che node_modules locali sovrascrivano quelli del container - /app/node_modules # Database PostgreSQL db: image: postgres:15-alpine volumes: - postgres_data:/var/lib/postgresql/data/ env_file: - .env ports: # Decommenta se vuoi accedere al DB dall'host con un client (es. DBeaver) - "5432:5432" volumes: postgres_data: