- Move agent code from backend/src/agent/ to agent/src/ss_tools/agent/ - Extract shared stdlib-only utilities to shared/src/ss_tools/shared/ - Add #region/#endregion contracts to all ~140 functions (INV_1 compliance) - Update docker files, entrypoint, build scripts for new package layout - Backend now imports ss_tools.shared._llm_health (no gradio/langchain deps) - Add specs for 036-039 feature plans
53 lines
2.1 KiB
Docker
53 lines
2.1 KiB
Docker
# #region docker.agent.Dockerfile [C:3] [TYPE Module] [SEMANTICS docker,agent,build]
|
||
# @BRIEF Agent Dockerfile — Python 3.11 slim + Gradio + LangGraph agent.
|
||
# @LAYER Infrastructure
|
||
# @RELATION DEPENDS_ON -> [EXT:path:agent/requirements.txt]
|
||
# @RELATION DEPENDS_ON -> [EXT:path:shared/pyproject.toml]
|
||
# @PRE Docker builder context — корень проекта. agent/, shared/, docker/ доступны.
|
||
# @POST Образ с Gradio-агентом, LangGraph, shared-утилитами.
|
||
# @RATIONALE Агент теперь в отдельном проекте agent/ с собственным pyproject.toml.
|
||
# Shared-пакет устанавливается как зависимость.
|
||
# @REJECTED COPY backend/ копирование полностью устарело — агент больше не в backend.
|
||
|
||
FROM python:3.11-slim
|
||
|
||
WORKDIR /app
|
||
|
||
# System deps for pdfplumber + psycopg + certs
|
||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||
libgl1 libglib2.0-0 libpq5 ca-certificates openssl && rm -rf /var/lib/apt/lists/*
|
||
|
||
# Python dependencies — agent runtime
|
||
ARG WITH_EMBEDDINGS=false
|
||
|
||
# Install shared package first (lightweight utilities)
|
||
COPY shared/ /app/shared/
|
||
RUN pip install --no-cache-dir -e /app/shared/
|
||
|
||
# Install agent requirements
|
||
COPY agent/requirements.txt /app/agent/requirements.txt
|
||
RUN pip install --no-cache-dir -r /app/agent/requirements.txt
|
||
|
||
# Optional: semantic embedding routing
|
||
COPY agent/requirements-embeddings.txt /app/agent/requirements-embeddings.txt
|
||
RUN if [ "$WITH_EMBEDDINGS" = "true" ]; then \
|
||
pip install --no-cache-dir -r /app/agent/requirements-embeddings.txt; \
|
||
fi
|
||
|
||
# Agent source code
|
||
COPY agent/ /app/agent/
|
||
RUN pip install --no-cache-dir -e /app/agent/
|
||
|
||
# Entrypoint for corporate CA cert installation
|
||
COPY docker/certs.sh /app/docker/certs.sh
|
||
COPY docker/agent.entrypoint.sh /app/docker/agent.entrypoint.sh
|
||
RUN chmod +x /app/docker/agent.entrypoint.sh /app/docker/certs.sh
|
||
|
||
# Gradio server
|
||
ENV GRADIO_SERVER_NAME=0.0.0.0
|
||
ENV GRADIO_SERVER_PORT=7860
|
||
|
||
WORKDIR /app/agent
|
||
ENTRYPOINT ["/app/docker/agent.entrypoint.sh"]
|
||
# #endregion docker.agent.Dockerfile
|