Spaces:
Running
Running
| # 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"] | |