2025-12-10 16:14:26 +03:00
|
|
|
FROM python:3.11-slim
|
|
|
|
|
|
|
|
|
|
# Устанавливаем зависимости для yt-dlp
|
|
|
|
|
RUN apt-get update && apt-get install -y \
|
|
|
|
|
ffmpeg \
|
|
|
|
|
wget \
|
|
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
|
|
|
|
# Копируем requirements и устанавливаем зависимости
|
|
|
|
|
COPY requirements.txt .
|
|
|
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
|
|
|
|
|
|
# Копируем код приложения
|
|
|
|
|
COPY . .
|
|
|
|
|
|
|
|
|
|
# Создаем директорию для загрузок
|
|
|
|
|
RUN mkdir -p downloads
|
|
|
|
|
|
|
|
|
|
ENV PYTHONUNBUFFERED=1
|
|
|
|
|
|
2026-05-25 16:46:35 +00:00
|
|
|
# Gunicorn: несколько worker-ов и конечные таймауты, чтобы один зависший
|
|
|
|
|
# клиент или запрос не блокировал весь VK downloader.
|
|
|
|
|
# Порт берется из переменной окружения PORT (по умолчанию 5000).
|
|
|
|
|
CMD sh -c "gunicorn --workers=${GUNICORN_WORKERS:-2} --threads=${GUNICORN_THREADS:-4} --timeout=${GUNICORN_TIMEOUT:-360} --graceful-timeout=${GUNICORN_GRACEFUL_TIMEOUT:-30} --keep-alive=${GUNICORN_KEEP_ALIVE:-5} --bind=${BIND_HOST:-0.0.0.0}:${PORT:-5000} app:app"
|
2025-12-10 16:14:26 +03:00
|
|
|
|