Spaces:
Running
Running
| # Используем Python 3.11 slim образ | |
| FROM python:3.11-slim | |
| # Устанавливаем системные зависимости | |
| RUN apt-get update && \ | |
| apt-get install -y --no-install-recommends \ | |
| bash \ | |
| git \ | |
| curl \ | |
| build-essential \ | |
| wget \ | |
| ca-certificates \ | |
| npm \ | |
| nodejs && \ | |
| rm -rf /var/lib/apt/lists/* | |
| # Создаем рабочую директорию | |
| WORKDIR /app | |
| # Копируем requirements.txt | |
| COPY requirements.txt . | |
| # Устанавливаем все зависимости кроме semgrep (чтобы избежать конфликта rich версий) | |
| RUN grep -vE '^(semgrep)([ =<>=~!].*)?$' requirements.txt > req_no_semgrep.txt && \ | |
| pip install --no-cache-dir --upgrade pip && \ | |
| pip install --no-cache-dir -r req_no_semgrep.txt | |
| # Отдельно устанавливаем semgrep без зависимостей (--no-deps) | |
| # чтобы не тащил свой rich~=13.5.2 и не конфликтовал с smolagents (rich>=13.9.4) | |
| RUN pip install --no-cache-dir semgrep --no-deps | |
| # Устанавливаем npm зависимости для MCP клиента | |
| RUN npm install -g mcp-remote | |
| # Копируем весь код приложения | |
| COPY . /app | |
| # Создаем необходимые директории | |
| RUN mkdir -p /app/scan_data /app/reports /app/projects | |
| # Делаем start.sh исполняемым | |
| RUN chmod +x start.sh | |
| # Открываем порты для всех сервисов | |
| EXPOSE 7860 7861 7862 7863 7864 7865 | |
| # Healthcheck для проверки главного агента | |
| HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \ | |
| CMD curl -f http://localhost:7860 || exit 1 | |
| # Запускаем все сервисы через start.sh | |
| CMD ["bash", "start.sh"] |