# RAG Service Dockerfile # Python 3.11.9 для совместимости с основным ботом FROM python:3.11.9-slim # Рабочая директория WORKDIR /app # Системные зависимости RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ && rm -rf /var/lib/apt/lists/* # Копируем зависимости COPY requirements.txt . # Устанавливаем зависимости # --no-cache-dir для уменьшения размера образа RUN pip install --no-cache-dir -r requirements.txt # Копируем код приложения COPY app/ ./app/ # Создаем директории для данных RUN mkdir -p data/models data/vectors # Переменные окружения по умолчанию ENV RAG_MODEL=sentence-transformers/all-MiniLM-L12-v2 ENV RAG_CACHE_DIR=/app/data/models ENV RAG_VECTORS_PATH=/app/data/vectors/vectors.npz ENV RAG_API_HOST=0.0.0.0 ENV RAG_API_PORT=8000 ENV LOG_LEVEL=INFO # Порт приложения EXPOSE 8000 # Healthcheck (использует простой endpoint /health без авторизации) HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')" || exit 1 # Запуск приложения CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]