version: '3.8' services: web: build: context: . dockerfile: Dockerfile container_name: video-matcher-web ports: - "7183:5000" volumes: # Persist data - ./data:/app/data - ./config:/app/config - ./logs:/app/logs # Development: mount source code (comment out for production) - ./app.py:/app/app.py - ./config.py:/app/config.py - ./auth_middleware.py:/app/auth_middleware.py - ./jwt_validator.py:/app/jwt_validator.py - ./templates:/app/templates - ./static:/app/static env_file: - .env environment: - FLASK_ENV=development - PYTHONUNBUFFERED=1 restart: unless-stopped networks: - video-matcher-network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:5000/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s networks: video-matcher-network: driver: bridge