Django Academy · บทเรียน

การเขียน Dockerfile สำหรับ Django

สร้างอิมเมจขนาดเล็กแบบแบ่งชั้นสำหรับแอป

บทเรียน 1 จาก 413 ขั้นตอน

การเขียน Dockerfile สำหรับ Django เป็นบทเรียน Django Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Django Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Django Academy มีบทเรียนทั้งหมด 4 บทเรียน

เหตุผลที่ควรใช้ Dockerfile

Dockerfile คือสูตรสำหรับสร้างแอปของคุณเป็นอิมเมจแบบพกพา ทำให้แอปทำงานเหมือนกันทั้งบนแล็ปท็อปและเซิร์ฟเวอร์ใด ๆ 🐳

เลือกอิมเมจพื้นฐาน

เริ่ม Dockerfile ทุกไฟล์ด้วย FROM โดยเลือกฐาน Python แบบขนาดเล็ก เพื่อให้อิมเมจมีขนาดเล็กและส่งไปใช้งานได้รวดเร็ว

FROM python:3.12-slim

กำหนดไดเรกทอรีทำงาน

ใช้ WORKDIR เพื่อกำหนดโฟลเดอร์ที่เก็บโค้ด ทำให้คำสั่งถัดไปทำงานจากตำแหน่งที่สะอาดและคาดเดาได้

WORKDIR /app

จัดการเอาต์พุตของ Python

แฟล็ก ENV สองรายการช่วยในคอนเทนเนอร์ ได้แก่ บันทึกแบบไม่ใช้บัฟเฟอร์และไม่สร้างไฟล์ .pyc ทำให้เอาต์พุตปรากฏทันทีและอิมเมจเป็นระเบียบ

ENV PYTHONUNBUFFERED=1 PYTHONDONTWRITEBYTECODE=1

คัดลอกข้อกำหนดก่อน

คัดลอก requirements.txt ก่อนโค้ดของคุณ Docker จะเก็บชั้นนี้ไว้ในแคช จึงไม่ต้องติดตั้งใหม่เมื่อมีเพียงโค้ดที่เปลี่ยนแปลง

COPY requirements.txt .

ติดตั้งสิ่งที่ต้องพึ่งพา

เรียกใช้ pip install พร้อม --no-cache-dir เพื่อไม่ให้แคชของแพ็กเกจทำให้อิมเมจสุดท้ายมีขนาดใหญ่ขึ้น

RUN pip install --no-cache-dir -r requirements.txt

คัดลอกโปรเจกต์ของคุณ

ตอนนี้ให้ COPY ส่วนที่เหลือของโปรเจกต์เข้าไป การทำหลังติดตั้งจะทำให้ชั้นการติดตั้งที่อยู่ในแคชนำกลับมาใช้ซ้ำได้

COPY . .

เปิดเผยพอร์ต

ใช้ EXPOSE เพื่อระบุพอร์ตที่แอปรับฟังอยู่ คำสั่งนี้เป็นเพียงคำแนะนำสำหรับผู้อ่านและเครื่องมือ ไม่ใช่ไฟร์วอลล์

EXPOSE 8000

กำหนดคำสั่งเริ่มต้น

ปิดท้ายด้วย CMD ซึ่งเป็นคำสั่งเริ่มต้นที่เปิดแอปเมื่อคอนเทนเนอร์เริ่มทำงาน

CMD ["gunicorn", "config.wsgi:application", "--bind", "0.0.0.0:8000"]

เพิ่ม .dockerignore

.dockerignore จะกันสิ่งที่ไม่จำเป็น เช่น venv และ .git ออกจากบริบทการสร้าง ทำให้การสร้างเร็วขึ้นและอิมเมจมีขนาดเล็กลง

.git
__pycache__
.venv
*.sqlite3

สร้างอิมเมจของคุณ

เรียกใช้ docker build พร้อมแท็ก เพื่อเปลี่ยน Dockerfile ให้เป็นอิมเมจที่ตั้งชื่อและนำกลับมาใช้ซ้ำได้จากทุกที่

docker build -t myapp:latest .

ตรวจสอบอย่างรวดเร็ว

ลองคิดถึงแคชชั้นของ Docker และลำดับการสร้าง

ทบทวน

คุณได้สร้าง Dockerfile สำหรับ Django โดยเลือกฐานขนาดเล็ก กำหนดค่า env ติดตั้งสิ่งที่ต้องพึ่งพาก่อนโค้ดเพื่อใช้แคช แล้วกำหนด CMD สูตรเดียว ทำงานได้ทุกที่ 🎉

เริ่มต้นได้ฟรี

เรียนรู้ Python ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

คำถามที่พบบ่อย

บทเรียน “การเขียน Dockerfile สำหรับ Django” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การเขียน Dockerfile สำหรับ Django” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Django Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Django Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การเขียน Dockerfile สำหรับ Django”

สร้างอิมเมจขนาดเล็กแบบแบ่งชั้นสำหรับแอป คุณปฏิบัติ Django Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Django Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Django Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “การเขียน Dockerfile สำหรับ Django” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Django Academy นี้ได้ไหม

ได้ บทเรียน Django Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การเขียน Dockerfile สำหรับ Django
  2. docker-compose พร้อม Postgres และ Redis
  3. จุดเริ่มต้น การย้ายข้อมูล และ collectstatic
  4. แนวทางปฏิบัติที่ดีสำหรับอิมเมจใช้งานจริง
← กลับไปที่ Django Academy