throttling, abuse-protection & logging/monitoring pass
This commit is contained in:
31
Dockerfile
Normal file
31
Dockerfile
Normal file
@@ -0,0 +1,31 @@
|
||||
# ---------------------------------------------------------------------
|
||||
# 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"]
|
||||
Reference in New Issue
Block a user