# SalGram — Docker-образ для Hugging Face Spaces (sdk: docker). FROM python:3.13-slim # Пользователь с uid 1000 — так требует Hugging Face Spaces; /data — точка # монтирования постоянного хранилища (если оно подключено в настройках Space). RUN useradd -m -u 1000 user && mkdir -p /data && chown user /data USER user ENV PATH="/home/user/.local/bin:$PATH" \ SALGRAM_DATA_DIR=/data \ PYTHONUNBUFFERED=1 \ PORT=7860 WORKDIR /home/user/app # Сначала зависимости — кешируется отдельно от кода. COPY --chown=user requirements-web.txt ./ RUN pip install --no-cache-dir -r requirements-web.txt COPY --chown=user . . EXPOSE 7860 # Один воркер обязателен: WebSocket-соединения хранятся в памяти процесса # (см. run_production в app.py). Каждое WS-соединение занимает поток. CMD ["gunicorn", "--workers", "1", "--threads", "100", "--timeout", "120", \ "--bind", "0.0.0.0:7860", "app:app"]