# Docker Compose - LogWhispererAI Development Environment # Usage: docker compose up -d # Access Frontend: http://localhost:5173 # Access Fake Backend API: http://localhost:3000 services: frontend: build: context: ./frontend dockerfile: Dockerfile.dev container_name: logwhisperer-frontend-dev ports: - "5173:5173" volumes: # Mount source code for Hot Module Replacement (HMR) - ./frontend:/app # Use named volume for node_modules to avoid conflicts with host - node_modules:/app/node_modules environment: - NODE_ENV=development - CHOKIDAR_USEPOLLING=true - VITE_API_URL=http://fake-backend:3000 # Ensure container restarts on failure restart: unless-stopped depends_on: - fake-backend # Health check to verify the service is running healthcheck: test: ["CMD", "wget", "-q", "--spider", "http://localhost:5173"] interval: 30s timeout: 10s retries: 3 start_period: 40s fake-backend: build: context: ./tools/fake-backend dockerfile: Dockerfile container_name: logwhisperer-fake-backend ports: - "3000:3000" environment: - PORT=3000 - DELAY_MS=1500 - NODE_ENV=production restart: unless-stopped healthcheck: test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/health', (r) => r.statusCode === 200 ? process.exit(0) : process.exit(1))"] interval: 30s timeout: 3s retries: 3 start_period: 5s volumes: node_modules: driver: local