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

Windows环境构建Docker镜像报cannot copy to non-directory错误如何解决

问题根因

报错核心是执行ADD . /app时,Docker尝试将宿主机当前目录下的.git目录复制到容器内的/app/.git路径,但容器内该路径已存在非目录类型的文件,触发复制冲突。
Windows环境复现、Linux环境正常的原因是两类系统下Docker对文件路径覆盖的处理逻辑存在差异,同时Windows端Git对.git目录内特殊文件的处理方式也会触发该兼容问题。

可用解决方案

按优先级从高到低尝试:

  • 优先修改项目根目录的.dockerignore文件,添加.git规则,排除不需要参与构建的Git版本控制目录。常规Node.js项目可直接补充以下规则:
.git
node_modules
dist

修改后重新构建即可,该方案同时可以缩小构建上下文体积,提升构建速度。

  • 清理本地Docker构建缓存,消除之前异常构建产生的脏缓存层:
    执行命令 docker builder prune -f 清理所有未使用的构建缓存后,重新执行构建命令。
  • 替换ADD指令为COPY指令,ADD会自动处理压缩包、远程链接等额外逻辑,纯本地文件复制场景用COPY更稳定,将Dockerfile中的ADD . /app改为COPY . /app即可。

内容的提问来源于stack exchange,提问作者Pedro Dimas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 17:24:05