การเขียน Dockerfile สำหรับ Django
สร้างอิมเมจขนาดเล็กแบบแบ่งชั้นสำหรับแอป
การเขียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การเขียน Dockerfile สำหรับ Django
- docker-compose พร้อม Postgres และ Redis
- จุดเริ่มต้น การย้ายข้อมูล และ collectstatic
- แนวทางปฏิบัติที่ดีสำหรับอิมเมจใช้งานจริง