SOLID Docker
硬性限制
- 保持 Dockerfile 可讀且簡短;適時拆分階段以減少巨型層
- 實務上每個映像只處理一個服務關注點
實踐
- 固定基礎映像標籤(生產環境中避免使用浮動的
latest) - 偏好使用多階段建置以保持執行階段映像小巧
- 絕不將機密、令牌或私鑰嵌入層中
- 使用
.dockerignore排除.venv、data/、.git及本機設定檔 - 在堆疊允許的情況下,於最終階段以非 root 身分執行
- 文件化必要的環境變數,而非硬編碼主機 IP
檢查清單
- 映像中無機密資訊
- 建置上下文已最小化
- 執行階段映像只包含所需內容