首页 > 解决方案 > 如何修复我的 Dockerfile 以生成成功的图像?

问题描述

我在尝试对 asp.net Core API 进行 Dockerize 时遇到了一些麻烦,当我尝试使用服务器中的目录时,Dockerfile 的构建失败

提前致谢

FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /src
COPY netuse\\000.000.00.000/NugetRepository$/nugetproy/MongoRefMapValidator/ /src
COPY netuse\\000.000.00.000/NugetRepository$/nugetproy/CanonicalModels/ /src
COPY netuse\\000.000.00.000/NugetRepository$/nugetproy/CanonicalConstants/ /src
CMD xcopy C:/proy/proyCore/.nuget/nuget.config /root/.nuget/NuGet/
COPY ./MyESAPI.csproj src/
COPY . .
WORKDIR /src/MyESAPI
RUN dotnet build "MyESAPI.csproj" -c Release -o /app

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

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

在“000.000.00.000”是我的服务器的IP地址这是我的错误:

COPY failed: CreateFile \\?\C:\ProgramData\Docker\tmp\docker-builder520676771\netuse\000.000.00.000\NugetRepository$\nugetproy\MongoRefMapValidator: El sistema no puede encontrar la ruta especificada.

标签: c#dockerasp.net-coredockerfile

解决方案


似乎您正在 Docker 上下文之外构建映像:这意味着Dockerfile应该位于包含源文件的上层文件夹中,如下所示:

my_project
├── src/
│   ├── my_file.ext
│   └── another_file.ext
└── Dockerfile

这意味着 Docker 守护进程可以推送上下文中的文件my_project:实际上,从您共享的片段中,您正在尝试从网络共享中复制内容(我猜是由于netuse路径)。


推荐阅读