Files
ss-tools/docker/Dockerfile.agent
busya b95df37cd5 refactor(agent): extract agent+shared into standalone packages with full GRACE semantic markup
- 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
2026-07-07 15:18:24 +03:00

53 lines
2.1 KiB
Docker
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# #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