.dockerignore 速查表 - Docker 构建上下文忽略规则大全
写 Dockerfile 时忘了配 .dockerignore,构建上下文会把 node_modules、.git 全打进去。这里按通配符、目录忽略、与 .gitignore 差异和瘦身技巧分好类,配示例直接复制。
返回 配置格式基础语法 Basic Syntax 6
node_modules忽略名为 node_modules 的文件或目录
*.log忽略所有 .log 文件
tmp/只忽略根目录下的 tmp 目录(带斜杠)
**/tmp忽略任意层级的 tmp 目录
# comment井号开头为注释行
空行被忽略
通配符 Glob 6
*匹配任意数量非分隔符字符
?匹配单个非分隔符字符
**匹配任意层级目录
[abc]匹配括号内任一字符
*.tmp忽略所有 .tmp 文件
dist/*忽略 dist 下一级所有内容(保留 dist 目录本身)
常见忽略项 Common Ignores 6
.git不把 git 仓库打进构建上下文
node_modules依赖目录,通常已在镜像内安装
.env不要泄漏密钥到构建环境
Dockerfile忽略自身(极少需要)
*.md忽略文档类文件
.dockerignore忽略自身不影响当前构建
与 .gitignore 差异 4
!node_modules/important用 ! 取反,重新包含被忽略项
Dockerfile 不读 .gitignore.dockerignore 与 .gitignore 相互独立
构建上下文 = docker build .docker 先按 .dockerignore 裁剪上下文再发给 daemon
COPY 仍受路径限制.dockerignore 只影响上下文,不限制 COPY 目标
瘦身技巧 Slimming 4
**/*.pyc忽略所有编译缓存
.cache/忽略本地缓存目录
coverage/忽略测试覆盖率报告
tests/忽略测试目录减小上下文
💡 提示
- 不配 .dockerignore 时,docker build . 会把当前目录全部发给 daemon,node_modules 和 .git 会让上下文巨大。
- 带斜杠的 tmp/ 只匹配根目录 tmp,不带斜杠的 tmp 会匹配任意层级的 tmp。
- .dockerignore 与 .gitignore 互不影响,不能共用同一份文件。
- 用 ** 可跨层级匹配目录,如 **/__pycache__ 忽略所有 Python 缓存。
由 LaoHand 维护
公开更新于 2026年8月2日,内容持续校对官方文档。