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

Docker构建前端项目报错‘cannot copy to non-directory’求助

解决Docker构建时"cannot copy to non-directory"错误

针对你遇到的Docker构建错误,以下是几个可行的解决方向:

1. 排查本地文件冲突

虽然配置了.dockerignore排除node_modules/,但仍可能存在意外的同名文件/目录干扰构建。执行以下命令检查本地是否有@eslint/eslintrc相关的非node_modules文件:

find . -path ./node_modules -prune -o -name "@eslint*" -print

如果发现匹配的文件/目录,将其添加到.dockerignore中,或者直接删除。

2. 调整pnpm安装参数,避免链接冲突

pnpm默认使用硬链接/符号链接管理依赖,这可能在Docker构建上下文里引发路径识别问题。修改Dockerfile中的pnpm install命令,添加--store-dir参数强制使用临时存储:

RUN pnpm install --store-dir /tmp/pnpm-store

或者使用--no-link参数禁用链接:

RUN pnpm install --no-link

3. 彻底清理Docker构建缓存

除了删除镜像,还需要清理Docker的构建缓存,确保构建从全新状态开始:

docker builder prune -a -f

之后重新执行构建命令:

docker build -t frontend .

4. 明确指定pnpm版本

corepack启用的pnpm版本可能与本地不一致,导致依赖安装结构差异。在Dockerfile中指定具体版本:

RUN corepack enable pnpm@8.15.0 # 替换为你本地使用的pnpm版本

5. 临时规避冲突(治标方案)

如果上述方法无效,可以在COPY . .前删除容器内可能存在的冲突路径:

RUN pnpm install
RUN rm -rf node_modules/@eslint/eslintrc # 先删除冲突路径
COPY . .

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 13:10:00