首页/云/Docker 容器速查/构建上下文过大导致慢
容器排障52 条

构建上下文过大导致慢

上下文越大构建越慢(即使 COPY 少量文件也会打包传输):用 .dockerignore 排除依赖、版本库与产物目录,必要时拆分构建目录。

Docker 容器速查云更新于 2026-10-12
度量du -sh . 与子目录排序
手段.dockerignore 排除 node_modules/.git/dist
细节BuildKit 会按需加载但仍受文件数量影响

示例

示例
du -sh . ; du -sh * .??* 2>/dev/null | sort -h | tail -8
docker build --progress plain -t app:1.0 . 2>&1 | head -30
把 .dockerignore 当成与 Dockerfile 同等重要的文件维护,能同时改善速度与缓存命中。

易错点

  • COPY . 之后任何源码改动都会打穿缓存,分层设计中把依赖安装与源码拷贝分开
  • 上下文里混入大文件(数据库转储、压缩包)会让每次构建都在传无用数据

数据来源与参考

  • Docker 官方文档:.dockerignore 与 build context(docs.docker.com/build)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌