FROM python:3.12-slim # Системные зависимости для OpenCV и шрифт для отрисовки кириллицы RUN apt-get update && apt-get install -y --no-install-recommends \ libgl1 \ libglib2.0-0 \ fonts-dejavu-core \ && rm -rf /var/lib/apt/lists/* # Непривилегированный пользователь (требование HF Spaces) RUN useradd -m -u 1000 user USER user ENV PATH="/home/user/.local/bin:$PATH" \ PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ HF_HOME=/home/user/.cache/huggingface \ PIP_NO_CACHE_DIR=1 WORKDIR /home/user/app # Сначала зависимости — для кеширования слоя COPY --chown=user requirements.txt . RUN pip install --user --no-cache-dir -r requirements.txt && \ pip install --user --no-cache-dir "fast-plate-ocr[onnx]" "imageio[ffmpeg]" # Скачиваем веса детектора на этапе сборки COPY --chown=user scripts/download_models.py ./scripts/ RUN python scripts/download_models.py # Копируем остальной код COPY --chown=user app ./app COPY --chown=user static ./static COPY --chown=user scripts ./scripts # Папки для данных RUN mkdir -p data/images data/annotated data/videos EXPOSE 7860 CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860"]