Best practices for writing Dockerfiles - taritinth/sw-dev-tools-and-environments-project GitHub Wiki

สรุป Best practices for writing Dockerfiles ของทีม

โดยยึดตาม General guidelines and recommendations จาก https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

1. Use multi-stage builds

เป็นหนึ่งใน best practices ที่ช่วยให้สามารถ optimize ระยะเวลาในการ build image ซ้ำในกรณีที่มีหลาย stage แทนที่จะ มา build image ใหม่ทุกครั้ง ก็เปลี่ยนมาใช้การ copy image ที่เคย build ไปแล้วมาใช้กับ stage ใหม่แทน โดยการใช้คำสั่ง

copy --from=<index stage or stage name> <destination path> <original path>

ref : https://dev.to/prontotools/optimize-docker-builds-multi-stage-27e3

2. Exclude with .dockerignore

ใช้เพื่อลดของที่ต้องส่งไปสร้าง image และลดการ expose ของสำคัญๆใน Docker image ของเรา โดยเฉพาะ .git, logs, dependencies ต่างๆ โดยการ ​​สร้าง .dockerignore ใน directory เดียวกันกับ Dockerfile แล้วใส่ path ของไฟล์ที่ไม่ต้องใช้ในการ build เข้าไป

ref : https://medium.com/zarewoft/ละไฟล์ที่ไม่จำเป็นก่อน-build-docker-image-ด้วย-dockerignore-a9cffebbb18c