C# docker的内置支持已生成带有错误的dockerfile

C# docker的内置支持已生成带有错误的dockerfile,c#,docker,asp.net-core,asp.net-core-webapi,asp.net-core-3.1,C#,Docker,Asp.net Core,Asp.net Core Webapi,Asp.net Core 3.1,My VS 2019 Generated Dockerfile及其下一个代码: FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base WORKDIR /app EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build WORKDIR /src COPY ["src/Services/ProductCatalogApi/ProductCatalogApi.csproj

My VS 2019 Generated Dockerfile及其下一个代码:

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

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /src
COPY ["src/Services/ProductCatalogApi/ProductCatalogApi.csproj", "src/Services/ProductCatalogApi/"]
RUN dotnet restore "src/Services/ProductCatalogApi/ProductCatalogApi.csproj"
COPY . .
WORKDIR "/src/Services/ProductCatalogApi"
RUN dotnet build "ProductCatalogApi.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "ProductCatalogApi.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "ProductCatalogApi.dll"]
当我用命令运行Dockerfile时
docker build.
我收到下一个:

Sending build context to Docker daemon  77.49MB
Step 1/16 : FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
 ---> 014a41b1f39a
Step 2/16 : WORKDIR /app
 ---> Using cache
 ---> c3eb79db5e63
Step 3/16 : EXPOSE 80
 ---> Using cache
 ---> f23ddd06f8f8
Step 4/16 : FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
 ---> 006ded9ddf29
Step 5/16 : WORKDIR /src
 ---> Using cache
 ---> d8016eaadf87
Step 6/16 : COPY ["src/Services/ProductCatalogApi/ProductCatalogApi.csproj", "src/Services/ProductCatalogApi/"]
COPY failed: stat /var/lib/docker/tmp/docker-builder040062339/src/Services/ProductCatalogApi/ProductCatalogApi.csproj: no such file or directory
My.csproj文件:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <RootNamespace>ShoesOnContainers.Services.ProductCatalogApi</RootNamespace>
    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
    <DockerfileContext>..\..\..</DockerfileContext>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.5" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.5" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.5" />
    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.9.10" />
    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.9.10" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.3" />
    <PackageReference Include="Swashbuckle.AspNetCore" Version="5.5.1" />
  </ItemGroup>


</Project>

netcoreapp3.1
ShoesOnContainers.Services.ProductCatalogApi
Linux
..\..\..
在我一整天的时间里,每当我收到错误信息时,我都试图用另一种方式建立自己的形象。请帮助某人

src/Services/ProductCatalogApi/ProductCatalogApi.csproj
在运行它的文件夹中不存在

如果dockerfile与csproj位于同一文件夹中,则应为

COPY ["ProductCatalogApi.csproj", "src/Services/ProductCatalogApi/"]
如果您使用的是docker compose,则路径必须是您尝试运行的docker compose文件的相对路径