# Dockerfile — Optimized for Layer Caching FROM python:3.10-slim WORKDIR /app # Install system deps RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ cmake \ git \ wget \ pkg-config \ python3-dev \ libopenblas-dev \ liblapack-dev \ libgomp1 \ libffi-dev \ libssl-dev \ zlib1g-dev \ && rm -rf /var/lib/apt/lists/* # === OPTIMIZATION: Cache Dependencies === # Pehle sirf requirements copy karo COPY requirements.txt . # Upgrade pip and install Python deps # Ye layer tab tak cache rahegi jab tak requirements.txt change nahi hoti RUN pip install --upgrade pip setuptools wheel RUN pip install --no-cache-dir -r requirements.txt # === CODE COPY === # Ab baki ka code copy karo (Ye change hone par upar wala step repeat nahi hoga) COPY . . # Ensure models dir exists and is writable by UID 1000 RUN mkdir -p /app/models && chown -R 1000:1000 /app/models # Create unprivileged user and switch RUN useradd -m -u 1000 user || true USER user ENV HOME=/home/user \ PATH=/home/user/.local/bin:$PATH EXPOSE 7860 CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]