Files
grabber-ai/Dockerfile
T
DenozordecandClaude Sonnet 5.5 efc9a4f56a
docker / build (push) Failing after 39s
Docker-сервис, выбор основы и сравнение моделей, сборщик датасета
- Docker: Dockerfile (CPU), compose с FlareSolverr, настройка через DUB_* переменные,
  токен доступа к /predict, tools/pack_models.py, workflow Gitea Actions, docs/docker.md
- Модель грузится офлайн (config.json рядом с весами); общий код вынесен в src/spans.py,
  сервису не нужны sklearn/matplotlib/pandas
- Обучение: профили tiny2/base/large/modern, запуски в models/runs, реестр и честное
  сравнение на одной тестовой выборке (src/runs.py), пункт меню «Модели»
- Датасет: язык и аудио-параметры дорожек, 18+ по строкам «Аудио», ручные метки по ссылкам,
  переиндексация сохранённого HTML, параллельная сборка, сбалансированная выборка
- Тексты страниц (data/pages) больше не хранятся в git

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 17:19:10 +07:00

40 lines
1.4 KiB
Docker

# syntax=docker/dockerfile:1
# DUB-AI: HTTP-сервис определения дорожек озвучки (FastAPI), CPU.
#
# python tools/pack_models.py --stage docker-models # положить модели в образ (необязательно)
# docker build -t dub-ai .
#
# Без шага pack_models образ собирается без моделей — тогда смонтируйте каталог: -v ./models:/app/models:ro
FROM python:3.12-slim
ENV PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \
PIP_NO_CACHE_DIR=1 \
PIP_DISABLE_PIP_VERSION_CHECK=1 \
HF_HUB_OFFLINE=1 \
TRANSFORMERS_OFFLINE=1 \
TOKENIZERS_PARALLELISM=false \
DUB_HOST=0.0.0.0 \
DUB_PORT=8000 \
DUB_MODEL_DIR=/app/models/best \
DUB_SEGMENTER_DIR=/app/models/segmenter
WORKDIR /app
# torch без CUDA: образ в разы легче, на VPS GPU нет
RUN pip install torch==2.11.0 --index-url https://download.pytorch.org/whl/cpu
COPY requirements-service.txt .
RUN pip install -r requirements-service.txt
COPY src/ src/
COPY docker-models/models/ models/
RUN useradd --system --uid 10001 --no-create-home dub
USER dub
EXPOSE 8000
HEALTHCHECK --interval=30s --timeout=5s --start-period=120s --retries=3 \
CMD python -c "import os,urllib.request as u; u.urlopen('http://127.0.0.1:%s/health' % os.environ.get('DUB_PORT','8000'), timeout=4)"
CMD ["python", "-m", "src.service"]