FROM python:3.10-slim # Install system dependencies for High-Fidelity OpenCV RUN apt-get update && apt-get install -y \ libgl1 \ libglib2.0-0 \ libsm6 \ libxext6 \ ffmpeg \ tzdata \ && rm -rf /var/lib/apt/lists/* WORKDIR /app # Set Timezone to IST (Indian Standard Time) ENV TZ=Asia/Kolkata RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # Install Full Accuracy Stack (YOLOv8 + Torch CPU) COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # YOLOv8 Warmup & Config (Bake into image to solve startup & permissions) ENV YOLO_CONFIG_DIR=/app/yolo_config RUN mkdir -p $YOLO_CONFIG_DIR \ && python -c "from ultralytics import YOLO; YOLO('yolov8n.pt'); YOLO('yolov8s.pt')" \ && chmod -R 777 $YOLO_CONFIG_DIR # Copy backend code COPY . . # Environment Defaults ENV FLASK_APP=app.py ENV DEPLOYMENT_ENV=production EXPOSE 7860 # Production-grade runner CMD ["gunicorn", "--bind", "0.0.0.0:7860", "--timeout", "120", "--workers", "1", "app:app"]