32 lines
1.7 KiB
Docker
32 lines
1.7 KiB
Docker
# ---------------------------------------------------------------------
|
||
# 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"]
|