version: '3.8' services: monitoring-dashboard: build: context: . dockerfile: Dockerfile ports: - "3000:3000" environment: - NODE_ENV=development - PORT=3000 volumes: - ./src:/app/src:ro - ./package.json:/app/package.json:ro - ./package-lock.json:/app/package-lock.json:ro restart: unless-stopped healthcheck: test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/health', (res) => { process.exit(res.statusCode === 200 ? 0 : 1) })"] interval: 30s timeout: 10s retries: 3 start_period: 40s networks: - monitoring # Optional: Add a reverse proxy for local development nginx: image: nginx:alpine ports: - "8080:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro depends_on: - monitoring-dashboard networks: - monitoring profiles: - with-proxy networks: monitoring: driver: bridge