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

Docker COPY指令无法找到文件求助:文件存在且无.dockerignore

问题分析与解决

核心问题1:COPY路径与构建上下文不匹配

你的Azure Pipeline设置了buildContext: $(System.DefaultWorkingDirectory),也就是**仓库根目录(repo_folder)**作为Docker构建上下文。Dockerfile中的COPY ./backstage/backstage.json ./是相对于这个上下文的路径,但实际backstage目录在docker子文件夹下,这条指令会在仓库根目录下寻找backstage/backstage.json,自然找不到目标文件。

修复方案:调整COPY路径

修改Dockerfile中的COPY指令,使用相对于构建上下文的正确路径:

FROM node:20-bookworm-slim AS packages
WORKDIR /app    
COPY ./docker/backstage/backstage.json ./

核心问题2:文件实际存在性存疑

从你提供的Azure Pipeline文件列表输出中,docker/backstage目录下显示的是package.json,但你描述的项目结构里是backstage.json,这里存在明显不一致:

Checking files in /home/someuser/agent/_work/83/s/docker/backstage directory:
...
-rw-r--r-- 1 someuser someuser 1596 Jan 8 13:43 package.json

请确认以下两点:

  • 是否将backstage.json正确提交到Git仓库中?
  • 是否存在文件名拼写错误(比如实际是package.json而非backstage.json)?

如果实际要复制的是package.json,则修改Dockerfile的COPY指令为:

COPY ./docker/backstage/package.json ./

额外验证建议

可以在Pipeline的验证步骤中添加命令,确认目标文件是否存在:

echo "Checking if backstage.json exists:"
ls -la $(System.DefaultWorkingDirectory)/docker/backstage/backstage.json || echo "File not found"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 04:50:11