← 中文资源

简体中文版本

保持 Docker 构建上下文精简

用 .dockerignore 排除 node_modules、构建产物、版本库数据与密钥文件,使上下文更小且不会误将密钥复制进镜像。

阅读英文原文

概述

构建上下文包含 node_modules、.git 与本地 .env,会让构建变慢,还可能把密钥带进镜像。镜像排除文件并配合针对性的 COPY,可同时缩短构建时间并收紧暴露面。

关键步骤

  1. 添加与工具链忽略规则对应的 .dockerignore。
  2. 排除版本库目录、构建产物与本地环境文件。
  3. 用具体的 COPY 只复制所需路径,而非 COPY 整个目录。
  4. 验证镜像中不含测试与密钥文件。

验证

  • 构建上下文显著减小。
  • 镜像中不含密钥与环境文件。
  • 所需文件仍被正确复制。
  • 重建速度提升。

注意事项

  • dockerignore 缩小上下文但不等于安全构建,不能指望它让 COPY 触不到密钥。
  • 即便上下文一致,若基础镜像或构建器变化,缓存可能仍不复用。

适用范围

本条目围绕「保持 Docker 构建上下文精简」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。

# .dockerignore
node_modules
dist
.git
.env
*.log
coverage