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

执行docker build时报错‘file not found in build context’求解决

解决Docker Build中"文件不在构建上下文或被.dockerignore排除"的错误

针对你遇到的这个错误,结合提供的Dockerfile,可从以下几个方向排查解决:

1. 确认项目文件路径匹配

Dockerfile中第一行COPY指令是COPY ["examroom.itembanking-main.csproj", "./"],需要确保:

  • 执行docker build命令时,终端当前工作目录下确实存在examroom.itembanking-main.csproj文件
  • 如果项目文件在子目录(比如src/下),要把COPY路径改成对应相对路径,比如COPY ["src/examroom.itembanking-main.csproj", "./"]

2. 检查.dockerignore规则

查看当前目录下的.dockerignore文件,确认没有以下类似规则:

  • *.csproj:会排除所有csproj文件
  • examroom.itembanking-main.csproj:直接排除目标文件
  • .或*:排除上下文内所有文件
    如果存在这些规则,删除对应的条目即可。

3. 确保构建上下文包含目标文件

执行docker build命令时,最后一个参数是构建上下文(比如docker build .中的.代表当前目录),目标csproj文件必须在这个上下文目录范围内。如果文件在上级目录,要么将Dockerfile移动到包含该文件的目录,要么调整构建上下文路径(比如docker build ../)。

4. 简化Dockerfile路径配置

你的Dockerfile中WORKDIR "/src/."可以简化为WORKDIR /src,不影响功能但更规范。

附你提供的Dockerfile:

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base 
WORKDIR /app 
EXPOSE 80 

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build 
WORKDIR /src 
COPY ["examroom.itembanking-main.csproj", "./"] 
RUN dotnet restore "examroom.itembanking-main.csproj" 
COPY . . 
WORKDIR "/src/." 
RUN dotnet build "examroom.itembanking-main.csproj" -c Release -o /app/build 

FROM build AS publish 
RUN dotnet publish "examroom.itembanking-main.csproj" -c Release -o /app/publish 

FROM base AS final 
WORKDIR /app 
COPY --from=publish /app/publish . 
ENTRYPOINT ["dotnet", "examroom.itembanking-main.dll"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:20:51