services: backend: build: context: ./Backend dockerfile: Dockerfile image: scraper-backend:v1 ports: - "8000:8000" volumes: - ./Backend/data:/app/data env_file: - ./Backend/.env environment: - PORT=8000 - DB_HOST=host.docker.internal extra_hosts: - "host.docker.internal:host-gateway" restart: unless-stopped frontend: build: context: ./Frontend dockerfile: Dockerfile target: build # <--- Important: Stops at the Node stage image: scraper-frontend:v1-dev ports: - "5173:5173" # <--- Map to Vite's port, not Nginx's port 80 volumes: - ./Frontend:/app # <--- Syncs your code changes - /app/node_modules # <--- Protects container's installed packages command: npm run dev -- --host 0.0.0.0 # <--- Tells Vite to listen for Docker depends_on: - backend restart: unless-stopped