Spaces:
Paused
Paused
| FROM node:20-bookworm-slim AS web-builder | |
| WORKDIR /src/web-new | |
| COPY web-new/package*.json ./ | |
| RUN npm ci | |
| COPY web-new/ ./ | |
| RUN npm run build | |
| FROM python:3.10-slim | |
| ENV PYTHONDONTWRITEBYTECODE=1 \ | |
| PYTHONUNBUFFERED=1 \ | |
| PORT=7860 \ | |
| OMP_NUM_THREADS=1 \ | |
| MKL_NUM_THREADS=1 \ | |
| MNEMO_NVIDIA_LIB_DIR=/usr/local/lib/mnemo-nvidia \ | |
| LD_LIBRARY_PATH=/usr/local/lib/mnemo-nvidia:/usr/local/lib \ | |
| WEB_ROOT=/app/web \ | |
| FRONTEND_MODE=studio \ | |
| MNEMO_DETECTOR_MODE=hf-demo \ | |
| MNEMO_ANALYZE_USE_EXCEL=1 \ | |
| MNEMO_PADDLE_DEVICE=gpu \ | |
| MNEMO_EASYOCR_DEVICE=cuda \ | |
| MNEMO_SENSOR_OCR_ENGINE=paddle | |
| ARG PADDLE_PACKAGE=paddlepaddle-gpu==2.6.2 | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| gcc g++ build-essential \ | |
| libglib2.0-0 libgl1 libgomp1 \ | |
| && rm -rf /var/lib/apt/lists/* | |
| WORKDIR /app | |
| COPY requirements.gpu.txt . | |
| RUN pip install --upgrade pip setuptools wheel \ | |
| && pip install "${PADDLE_PACKAGE}" \ | |
| && pip install -r requirements.gpu.txt | |
| RUN python - <<'PY' | |
| from pathlib import Path | |
| import site | |
| root = Path('/usr/local/lib/mnemo-nvidia') | |
| root.mkdir(parents=True, exist_ok=True) | |
| for base in site.getsitepackages(): | |
| nvidia = Path(base) / 'nvidia' | |
| if not nvidia.exists(): | |
| continue | |
| for lib_dir in nvidia.glob('*/lib'): | |
| for lib_path in lib_dir.glob('*.so*'): | |
| link_path = root / lib_path.name | |
| if link_path.exists() or link_path.is_symlink(): | |
| continue | |
| link_path.symlink_to(lib_path) | |
| PY | |
| RUN ldconfig | |
| COPY . . | |
| COPY --from=web-builder /src/web /app/web | |
| EXPOSE 7860 | |
| CMD ["python", "app.py", "--frontend-mode", "studio"] | |