| # Компактный Python-образ для запуска учебного Django-сайта. | |
| FROM python:3.11-slim | |
| # Настройки делают логи читаемыми и отключают создание pyc-файлов. | |
| ENV PYTHONDONTWRITEBYTECODE=1 \ | |
| PYTHONUNBUFFERED=1 \ | |
| DJANGO_SETTINGS_MODULE=config.settings | |
| WORKDIR /app | |
| # Сначала устанавливаются зависимости, чтобы Docker кэшировал этот слой. | |
| COPY requirements.txt /app/requirements.txt | |
| RUN pip install --no-cache-dir --upgrade pip && \ | |
| pip install --no-cache-dir -r /app/requirements.txt | |
| # Затем копируется код проекта. | |
| COPY . /app | |
| RUN chmod +x /app/entrypoint.sh | |
| # HuggingFace Spaces ожидает веб-приложение на порту 7860. | |
| EXPOSE 7860 | |
| # Entrypoint применяет миграции, загружает контент и запускает Gunicorn. | |
| CMD ["/app/entrypoint.sh"] | |