Blockdit Logo
Blockdit Logo (Mobile)
สำรวจ
ลงทุน
คำถาม
เข้าสู่ระบบ
มีบัญชีอยู่แล้ว?
เข้าสู่ระบบ
หรือ
ลงทะเบียน
Shoper Gamer
•
ติดตาม
19 ธ.ค. เวลา 05:38 • การศึกษา
.dockerignore คืออะไร
โดย
คุณเคยสงสัยไหมว่าทำไมการ docker build บางครั้งถึงใช้เวลานานผิดปกติ? หรือ ทำไม Docker Image ที่ได้ถึงมีขนาดใหญ่เทอะทะ? สาเหตุมักมาจากไฟล์ที่ไม่จำเป็นถูกคัดลอกเข้าไปโดยไม่ตั้งใจ
.dockerignore คือกุญแจสำคัญที่จะช่วยแก้ปัญหานี้ และ เพิ่มความปลอดภัยให้กับข้อมูลของคุณ
★
.dockerignore คืออะไร
.dockerignore คือไฟล์คอนฟิกูเรชันพื้นฐานที่วางไว้ในโฟลเดอร์หลัก (Root) ของโปรเจกต์ มีหน้าที่บอก Docker ว่า "ไฟล์ หรือ โฟลเดอร์ใดบ้างที่ไม่ต้องคัดลอกเข้าไปยัง Build Context"
💡 Build Context: คือกล่องข้อมูลที่ถูกส่งไปยัง Docker Daemon เพื่อใช้สร้าง Image
💡 เปรียบเทียบง่ายๆ: หาก .gitignore บอก Git ว่าไม่ต้องเก็บไฟล์ไหน .dockerignore ก็บอก Docker ว่าไม่ต้องนำไฟล์นั้นเข้า Image
★
ทำไมต้องใช้ .dockerignore?
1) Build เร็วขึ้น
ลดปริมาณข้อมูลที่ต้องส่งไปยัง Docker Daemon (เช่น ไม่ต้องส่ง node_modules ขนาดใหญ่)
2) Image เล็กลง
ไฟล์ที่ไม่จำเป็น (เช่น Logs, ตัวอย่างโค้ด, ไฟล์ Temp) จะไม่ถูกรวมเข้าไปใน Image
3) ความปลอดภัยสูงขึ้น ป้องกันไม่ให้ไฟล์สำคัญหลุดเข้าไป เช่น .env , API Keys หรือ ไฟล์ Config ที่มีความลับ
4) Cache ทำงานดีขึ้น
การเปลี่ยนแปลงไฟล์ที่ไม่สำคัญ (เช่น แก้ไข README) จะไม่ทำให้ Docker ต้องเริ่ม Build ใหม่ทั้งหมด
1
★
วิธีการเขียน Patterns ใน .dockerignore
○ *.log : ไม่เอาทุกไฟล์ที่นามสกุล .log
○ node_modules/ : ไม่เอาโฟลเดอร์ node_modules ทั้งหมด
○ **/*.tmp : ไม่เอาไฟล์ .tmp ในทุกๆ โฟลเดอร์ย่อย
○ !important.log : ยกเว้น ไฟล์ important.log (ให้นำเข้า Image แม้จะติดกฎอื่น)
★
ตัวอย่างไฟล์ที่ควรใส่ใน .dockerignore
1) สำหรับทุกโปรเจกต์ (General)
```text
.git/
.gitignore
Dockerfile
docker-compose.yml
README.md
LICENSE
```
2) สำหรับ Node.js
```text
node_modules/
npm-debug.log*
.env
dist/ (ถ้ามีขั้นตอน build ใน Docker)
```
3) สำหรับ Python
```text
__pycache__/
*.py[cod]
.env
venv/
```
★
แนวทางสำหรับ .dockerignore
1) สร้างตั้งแต่เริ่มโปรเจกต์ อย่ารอให้ Image ใหญ่แล้วค่อยมาแก้
2) Ignore ไฟล์ Secret เสมอระบุไฟล์จำพวก .env หรือ *.key ไว้เป็นอันดับต้นๆ
3) จัดกลุ่มให้เป็นระเบียบ แยกกลุ่มไฟล์ตามประเภท เช่น Version Control, Dependencies และ IDE Settings
4) ใช้ Multi-stage Builds ควบคู่กัน
เพื่อแยกส่วนการ Build และ ส่วนการรันแอปออกจากกันอย่างชัดเจน
2
✏️ Shoper Gamer
>>
https://shopergamer.vercel.app/
✓
Docker Images คืออะไร 👇
>>
https://www.blockdit.com/posts/69424b7b46c97546b41fec13
Credit :
👇
●
https://shisho.dev/blog/posts/how-to-use-dockerignore/
●
https://shorturl.at/OtJmB
●
https://shorturl.at/5ybCl
เทคโนโลยี
ข่าวรอบโลก
docker
บันทึก
1
1
1
1
โฆษณา
ดาวน์โหลดแอปพลิเคชัน
© 2025 Blockdit
เกี่ยวกับ
ช่วยเหลือ
คำถามที่พบบ่อย
นโยบายการโฆษณาและบูสต์โพสต์
นโยบายความเป็นส่วนตัว
แนวทางการใช้แบรนด์ Blockdit
Blockdit เพื่อธุรกิจ
ไทย