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
相关产品推荐
相关产品推荐

