# Многоступенчатая сборка для оптимизации FROM python:3.14-slim as builder WORKDIR /app # Устанавливаем зависимости COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Финальный образ FROM python:3.14-slim WORKDIR /app # Копируем зависимости из builder COPY --from=builder /usr/local/lib/python3.9/site-packages /usr/local/lib/python3.9/site-packages COPY --from=builder /usr/local/bin /usr/local/bin # Копируем код приложения COPY . . # Создаем пользователя для запуска RUN useradd -m -u 1000 appuser && chown -R appuser:appuser /app USER appuser # Экспортируем порт EXPOSE 5000 # Health check HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ CMD python -c "import requests; requests.get('http://localhost:5000/health')" || exit 1 # Запускаем через gunicorn CMD ["gunicorn", "--bind", "0.0.0.0:5000", "--workers", "4", "run:app"]