อ่านเอกสาร NodeJS Docker Cheatsheet จาก OWASP
ทำการอธิบายถึงการใช้งาน Docker กับระบบที่พัฒนาด้วย NodeJS
ไว้ว่าควรต้องทำอย่างไรบ้าง
เพื่อให้ปลอดภัยมากยิ่งขึ้น
1. ในการใช้งาน Image ให้ระบุชื่อ tag และ version ด้วย SHA256 ไปเลย (Digest)
ยกตัวอย่างเช่น node@sha256:b2da3316acdc2bec442190a1fe10dc094e7ba4121d029cb32075ff59bb27390a
2. Install dependency เฉพาะ production เท่านั้น
นั่นคือ ตอน install ไม่สนใจ devDependenies
3. กำหนด NODE_ENV ไว้เสมอ
โดยกำหนดไว้ที่ productionกำหนด production เป็นค่า default ไว้เลย
เพราะว่าอาจจะลืม รวมทั้ง library หลาย ๆ ตัวก็อาจจะใช้ค่านี้ด้วย
4. ห้าม run container ด้วย user root อันตรายมาก ๆ
5. ระบบงานที่พัฒนาต้องจัดการเรื่อง การ terminate ที่ถูกต้องรวมทั้ง Graceful shutdown ด้วย
6. ต้องทำการ scan image ด้วยเสมอ ในตอนนี้ buildin มาใน docker แล้ว
7. ในการ build image ให้ใช้ multi-stage build เพื่อให้เหลือเฉพาะสิ่งที่จำเป็นเท่านั้น
8. ไฟล์อะไรที่ไม่จำเป็น ก็ไม่ต้องเอาเข้ามาในการ build
ด้วยการกำหนดในไฟล์ .dockerignore
แต่ถ้ามีบางไฟล์ต้องใช้จริง ๆ
แนะนำให้ใช้ผ่านการ mount แบบ secret เพิ่มเข้ามา