refactor(docker): split requirements by role, slim enterprise bundle by default
Split requirements.txt into role-specific files: - requirements-backend.txt — FastAPI API runtime - requirements-agent.txt — Gradio/LangGraph agent (no embeddings) - requirements-embeddings.txt — opt-in sentence-transformers Default enterprise bundle (./build.sh bundle) builds slim agent without sentence-transformers/torch (~500 MB saved). Embeddings opt-in via ./build.sh bundle:embeddings <tag>. Embedding router degrades gracefully when package is absent (ImportError catch in _embedding_router.py). Updated Dockerfiles: - backend.Dockerfile → requirements-backend.txt - Dockerfile.agent → requirements-agent.txt + WITH_EMBEDDINGS build arg - all-in-one.Dockerfile → requirements-backend.txt Added embeddings variant to build.sh with full manifest/digest output. Hardened .dockerignore (cache, report, model, archive patterns). Other branch work: align git route mocks with async services, remove legacy agent test files superseded by contract tests.
This commit is contained in:
@@ -20,10 +20,18 @@ WORKDIR /app
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
libgl1 libglib2.0-0 && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Python dependencies — используем backend/requirements.txt (содержит httpx, gradio,
|
||||
# langgraph, langchain-openai, pdfplumber и все транзитивные зависимости)
|
||||
COPY backend/requirements.txt /app/backend/requirements.txt
|
||||
RUN pip install --no-cache-dir -r /app/backend/requirements.txt
|
||||
# Python dependencies — agent runtime (gradio, langgraph, httpx, pdfplumber, ...)
|
||||
# Без sentence-transformers — embedding router безопасно отключается при ImportError.
|
||||
ARG WITH_EMBEDDINGS=false
|
||||
|
||||
COPY backend/requirements-agent.txt /app/backend/requirements-agent.txt
|
||||
RUN pip install --no-cache-dir -r /app/backend/requirements-agent.txt
|
||||
|
||||
# Optional: semantic embedding routing (большие ML-зависимости: ~500 MB+)
|
||||
COPY backend/requirements-embeddings.txt /app/backend/requirements-embeddings.txt
|
||||
RUN if [ "$WITH_EMBEDDINGS" = "true" ]; then \
|
||||
pip install --no-cache-dir -r /app/backend/requirements-embeddings.txt; \
|
||||
fi
|
||||
|
||||
# ── Минимальная копия backend/src/ ──────────────────────────────
|
||||
# Только то, что реально импортирует агент (трассировка 2026-06-14):
|
||||
|
||||
Reference in New Issue
Block a user