# --------------------------------------------------------------------- # 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"]