# Используем легкий Python 3.10 FROM python:3.10-slim # Рабочая директория WORKDIR /app # Создаем кэш директорию для моделей, чтобы они не скачивались каждый раз (если подключить persistent storage) # Или просто разрешаем запись, так как трансформеры захотят скачать модели RUN mkdir -p /app/ml_cache && chmod 777 /app/ml_cache ENV TRANSFORMERS_CACHE=/app/ml_cache # Копируем зависимости COPY requirements.txt . # Устанавливаем зависимости # --no-cache-dir уменьшает размер образа RUN pip install --no-cache-dir -r requirements.txt # Копируем код приложения COPY . . # Скачиваем NLTK данные при сборке (чтобы не качать в рантайме) RUN python -c "import nltk; nltk.download('punkt'); nltk.download('stopwords')" # Открываем порт 7860 (стандарт для Hugging Face) EXPOSE 7860 # Запускаем приложение # host 0.0.0.0 обязателен для Docker CMD ["uvicorn", "api:app", "--host", "0.0.0.0", "--port", "7860"]