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

Windows环境下Docker构建Node.js镜像时COPY指令报错求助

问题分析

错误cannot copy to non-directory: /var/lib/docker/overlay2/.../app/discord.js表明Docker执行COPY * ./时,试图将构建上下文中的内容复制到容器内的/app/discord.js,但目标路径已存在非目录(文件),或要复制的源是目录而目标是文件,导致冲突。

解决方案

1. 替换COPY命令

将COPY * ./改为COPY . .。COPY * ./依赖shell通配符扩展,可能遗漏隐藏文件或触发匹配异常;COPY . .会可靠复制构建上下文内所有文件(除.dockerignore排除项)到容器当前工作目录。

修改后的Dockerfile:

FROM node:10-alpine

RUN mkdir -p /app

WORKDIR /app
COPY . .
RUN yarn install

CMD ["node", "/app/index.js"]

2. 添加.dockerignore文件

在项目根目录创建.dockerignore文件,排除无需复制到容器的内容,避免本地文件干扰构建:

node_modules
.git
.gitignore
npm-debug.log
yarn-error.log

3. 清理构建缓存(可选)

若之前的构建缓存残留异常,执行以下命令清理:

docker builder prune

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 04:45:09