27 lines
966 B
Docker
27 lines
966 B
Docker
# backend/Dockerfile
|
|
|
|
# 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 ["docker-entrypoint.sh"]
|
|
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] |