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