Spaces:
Sleeping
Sleeping
FROM python:3.10-slim | |
# Install system dependencies | |
RUN apt-get update && apt-get install -y --no-install-recommends \ | |
git gcc g++ libglib2.0-0 libsm6 libxext6 libxrender-dev \ | |
build-essential curl && \ | |
rm -rf /var/lib/apt/lists/* | |
# Create user | |
RUN useradd -m -u 1000 user | |
USER user | |
ENV PATH="/home/user/.local/bin:$PATH" | |
WORKDIR /app | |
# Copy requirements first for better caching | |
COPY --chown=user requirements.txt ./ | |
# Install dependencies with proper NumPy version | |
RUN pip install --upgrade pip && \ | |
pip install --no-cache-dir packaging ninja wheel setuptools | |
# Force install NumPy 1.x first to avoid compatibility issues | |
RUN pip install --no-cache-dir --force-reinstall "numpy<2.0" | |
# Install PyTorch CPU version (compatible with NumPy 1.x) | |
RUN pip install --no-cache-dir torch==2.2.2+cpu torchvision==0.17.2+cpu torchaudio==2.2.2+cpu \ | |
--index-url https://download.pytorch.org/whl/cpu | |
# Install transformers and related packages | |
RUN pip install --no-cache-dir \ | |
"transformers>=4.37.0" \ | |
datasets \ | |
Pillow \ | |
accelerate \ | |
scipy | |
# Install FastAPI and related packages | |
RUN pip install --no-cache-dir \ | |
fastapi \ | |
"uvicorn[standard]" \ | |
python-multipart | |
# Install other dependencies (skip problematic ones) | |
RUN pip install --no-cache-dir \ | |
opencv-python-headless | |
# Try to install qwen-vl-utils (if it fails, continue) | |
RUN pip install --no-cache-dir qwen-vl-utils || echo "qwen-vl-utils installation failed, continuing..." | |
# Copy all application files | |
COPY --chown=user . . | |
# Set environment variables for better compatibility | |
ENV TRANSFORMERS_CACHE=/tmp/transformers_cache | |
ENV HF_HOME=/tmp/hf_home | |
ENV PYTHONUNBUFFERED=1 | |
# Expose port | |
EXPOSE 7860 | |
# Health check | |
HEALTHCHECK --interval=30s --timeout=30s --start-period=60s --retries=3 \ | |
CMD curl -f http://localhost:7860/health || exit 1 | |
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860", "--timeout-keep-alive", "120"] |