概述
构建上下文包含 node_modules、.git 与本地 .env,会让构建变慢,还可能把密钥带进镜像。镜像排除文件并配合针对性的 COPY,可同时缩短构建时间并收紧暴露面。
关键步骤
- 添加与工具链忽略规则对应的 .dockerignore。
- 排除版本库目录、构建产物与本地环境文件。
- 用具体的 COPY 只复制所需路径,而非 COPY 整个目录。
- 验证镜像中不含测试与密钥文件。
验证
- 构建上下文显著减小。
- 镜像中不含密钥与环境文件。
- 所需文件仍被正确复制。
- 重建速度提升。
注意事项
- dockerignore 缩小上下文但不等于安全构建,不能指望它让 COPY 触不到密钥。
- 即便上下文一致,若基础镜像或构建器变化,缓存可能仍不复用。
适用范围
本条目围绕「保持 Docker 构建上下文精简」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。
# .dockerignore
node_modules
dist
.git
.env
*.log
coverage