# ---------------------------------------------------------------------
# Dockerfile برای اپلیکیشن Django (Tadrisino).
#
# ⚠️ این ایمیج فقط برای اجرای محلی/dev در کنارِ استکِ لاگِ متمرکز
# (docker-compose.yml) ساخته شده، نه یک تنظیمِ پروداکشن. عمداً همون چیزی
# که پروژه از قبل با `python manage.py runserver` اجرا می‌کرد رو نگه
# داشته (بدونِ اضافه‌کردنِ gunicorn/uWSGI یا هر dependency جدید)، چون
# هدفِ این تغییر فقط معرفیِ زیرساختِ Docker + لاگِ متمرکزه، نه بازطراحیِ
# نحوه‌ی serve شدنِ اپلیکیشن.
# ---------------------------------------------------------------------
FROM python:3.12-slim

# جلوگیری از نوشتنِ فایل‌های .pyc و بافر نشدنِ stdout/stderr — بدونِ این
# دومی، لاگ‌های JSON ممکنه با تاخیر (یا فقط موقعِ خروج) چاپ بشن.
ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1

WORKDIR /app

# اول فقط requirements.txt کپی می‌شه تا وقتی صرفاً کدِ اپلیکیشن تغییر
# می‌کنه (نه dependency ها)، لایه‌ی pip install از کشِ Docker استفاده کنه
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

EXPOSE 8000

# دستورِ واقعیِ اجرا (migrate + runserver) در docker-compose.yml تعریف
# شده، نه اینجا؛ این CMD فقط یک fallback برای اجرای مستقیمِ ایمیجه.
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
