# Dockerfile для Django приложения с Celery
FROM python:3.11-slim

# Переменные окружения
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV DJANGO_SETTINGS_MODULE=myproject.settings

# Установка системных зависимостей
RUN apt-get update && apt-get install -y --no-install-recommends \
    # Для PostgreSQL
    libpq-dev \
    postgresql-client \
    # Для Pillow и pillow-heif
    libjpeg-dev \
    libpng-dev \
    libwebp-dev \
    libheif-dev \
    libde265-dev \
    # Для сборки Python пакетов
    gcc \
    g++ \
    # Утилиты
    curl \
    && 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 /app/staticfiles /app/media

# Создаём непривилегированного пользователя
RUN useradd -m -u 1000 appuser

# Копируем entrypoint скрипт
# Копируем entrypoint скрипт
COPY docker/entrypoint.sh /entrypoint.sh
COPY docker/create_public_tenant.py /app/docker/create_public_tenant.py
RUN chmod 755 /entrypoint.sh && chown appuser:appuser /entrypoint.sh

# Меняем владельца рабочей директории
RUN chown -R appuser:appuser /app

USER appuser

# Порт приложения
EXPOSE 8000

# Точка входа (запускаем через bash явно, чтобы избежать ошибок Permission denied)
ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]

# Команда по умолчанию (будет переопределена в docker-compose)
CMD ["web"]
