Spaces:
Running
Running
| # HF Spaces Docker – AgriAnalyze API | |
| FROM python:3.11-slim | |
| ENV PYTHONDONTWRITEBYTECODE=1 \ | |
| PYTHONUNBUFFERED=1 \ | |
| PIP_NO_CACHE_DIR=1 | |
| # System deps for OpenCV / ultralytics | |
| RUN apt-get update \ | |
| && apt-get install -y --no-install-recommends \ | |
| libgl1 libglib2.0-0 git \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # HF Spaces requires a non-root user with uid 1000 | |
| RUN useradd -m -u 1000 user | |
| USER user | |
| ENV PATH="/home/user/.local/bin:$PATH" | |
| WORKDIR /app | |
| # Install CPU-only Python deps | |
| COPY --chown=user requirements.lock.txt ./ | |
| RUN pip install --upgrade pip \ | |
| && pip install --index-url https://download.pytorch.org/whl/cpu \ | |
| torch==2.5.1 torchvision==0.20.1 \ | |
| && pip install \ | |
| numpy==2.3.4 pandas==2.3.3 pyyaml==6.0.3 omegaconf==2.3.0 \ | |
| loguru==0.7.3 pillow==12.0.0 \ | |
| fastapi==0.121.1 uvicorn==0.39.0 python-multipart==0.0.20 websockets==15.0.1 httpx==0.28.1 \ | |
| scipy==1.16.0 \ | |
| ultralytics==8.3.214 \ | |
| fpdf2 opencv-python-headless requests shapely pyproj geopandas scikit-learn | |
| # Copy project | |
| COPY --chown=user pyproject.toml ./ | |
| COPY --chown=user src ./src | |
| COPY --chown=user configs ./configs | |
| COPY --chown=user models ./models | |
| RUN pip install --no-deps -e . | |
| EXPOSE 7860 | |
| CMD ["python", "-m", "uvicorn", "agrianalyze.api.app:get_app", "--factory", "--host", "0.0.0.0", "--port", "7860", "--ws", "websockets"] | |