# 1. BASE IMAGE
FROM python:3.11-slim
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1 # เพื่อให้ Log แสดงผลทันที

# 2. WORK DIRECTORY
WORKDIR /app

# 3. DEPENDENCIES: Copy และติดตั้ง (ใช้ประโยชน์จาก Docker Layer Caching)
COPY requirements.txt /app/
RUN pip install --no-cache-dir -r requirements.txt

# 4. ENTRYPOINT SCRIPT: Copy และกำหนดสิทธิ์รัน (ใช้สำหรับ Startup Automation)
COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh

# 5. CODE: คัดลอกโค้ดโปรเจกต์ที่เหลือทั้งหมดมาไว้ใน /app
COPY . /app/

# 6. EXPOSE:
EXPOSE 8000

# 7. ENTRYPOINT/CMD: กำหนด Entrypoint หลัก
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]