services: backend: build: context: . dockerfile: Dockerfile.backend container_name: flight-radar-backend-dev restart: unless-stopped ports: - "8000:8000" environment: - DATABASE_PATH=/app/data/cache.db volumes: # Mount source files so uvicorn --reload picks up changes - ./api_server.py:/app/api_server.py - ./airports.py:/app/airports.py - ./cache.py:/app/cache.py - ./database:/app/database - flight-radar-data-dev:/app/data command: uvicorn api_server:app --host 0.0.0.0 --port 8000 --reload frontend: image: node:20-alpine container_name: flight-radar-frontend-dev working_dir: /app restart: unless-stopped ports: - "5173:5173" environment: # Tells Vite's proxy where to find the backend inside Docker - API_TARGET=http://backend:8000 volumes: - ./frontend:/app # Isolate node_modules inside the container (don't use host's) - /app/node_modules command: sh -c "npm install && npm run dev -- --host" depends_on: - backend volumes: flight-radar-data-dev: driver: local