多阶段构建把编译工具留在构建阶段,运行镜像只包含二进制、证书和必要配置。这样既减少体积,也避免在生产环境暴露包管理器和编译器。

固定可重现输入

基础镜像应固定到明确版本,依赖使用锁文件。构建上下文通过 .dockerignore 排除 Git 历史、日志和本地缓存,既提升速度,也防止敏感文件意外进入镜像层。

运行时使用非 root 用户,根文件系统尽可能只读,并设置健康检查和资源限制。不要把密码写进镜像或构建参数,密钥应由运行环境注入。

镜像大小不是唯一目标。为了省下几兆而删除诊断所需的证书或时区数据,可能增加线上排障成本。可靠、可审计和足够小,比追求排行榜式的极限体积更实际。