CoolFace
Apppublic

hellower/diary-predictor

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
Dockerfile52 linesDownload Raw Back to root
1# Используем официальный Python образ2FROM python:3.11-slim3 4# Устанавливаем рабочую директорию5WORKDIR /app6 7# Устанавливаем системные зависимости8RUN apt-get update && apt-get install -y \9    gcc \10    g++ \11    && rm -rf /var/lib/apt/lists/*12 13# Копируем файл зависимостей14COPY requirements.txt .15 16# Устанавливаем Python зависимости17RUN pip install --no-cache-dir --upgrade pip && \18    pip install --no-cache-dir -r requirements.txt19 20# Создаем непривилегированного пользователя21RUN useradd -m -u 1000 appuser22 23# Копируем код приложения24COPY . .25 26# Меняем владельца файлов27RUN chown -R appuser:appuser /app28 29# Переключаемся на непривилегированного пользователя30USER appuser31 32# Открываем порт33# Для Hugging Face Spaces используется порт 7860 (устанавливается автоматически через переменную PORT)34# Для локального запуска используется порт 500035EXPOSE 786036 37# Переменные окружения38ENV PYTHONUNBUFFERED=139ENV FLASK_APP=app.py40# Hugging Face Spaces автоматически устанавливает PORT=786041# Для локального запуска можно установить PORT=500042ENV PORT=786043 44# Health check45HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \46    CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:7860/health')" || exit 147 48# Запускаем приложение через gunicorn49# Используем переменную PORT (7860 для Spaces, можно переопределить для локального запуска)50CMD ["sh", "-c", "gunicorn --bind 0.0.0.0:${PORT:-7860} --workers 2 --threads 2 --timeout 120 --access-logfile - --error-logfile - app:app"]51 52