You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker构建时如何忽略根目录指定文件夹(Dockerfile在子目录)

Docker构建时.dockerignore不生效的解决方法

问题根源

你执行docker build时指定的构建上下文是根目录(命令末尾的.),Docker只会加载上下文根目录下的.dockerignore文件,而你把.dockerignore放在了build子目录中,这个配置完全没被Docker读取,所以忽略规则不生效。

正确配置方案

方案1:将.dockerignore移到根目录(推荐)

把build目录下的.dockerignore移动到项目根目录,修改内容为:

node_modules
.vscode
.git

因为构建上下文是根目录,直接写这些相对路径即可,不需要加../前缀。

方案2:调整构建上下文(不推荐,易出错)

如果一定要保留build目录下的.dockerignore,需要将构建上下文改为build目录,同时调整docker build命令和Dockerfile中的路径:

  1. 修改build目录下的.dockerignore内容为:
../node_modules
../.vscode
../.git
  1. 执行构建命令时,切换到build目录,或者指定上下文为build目录:
# 切换到build目录后执行
docker build -t dtest_sec -f Dockerfile ../

# 或者从根目录执行
docker build -t dtest_sec -f build/Dockerfile build/

注意:这种方式下,Dockerfile中的COPY/ADD指令需要调整路径,因为构建上下文变成了build目录,访问根目录的文件要使用../前缀,容易引发路径错误,因此优先推荐方案1。

内容的提问来源于stack exchange,提问作者10raw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 13:21:08