首页 > 解决方案 > 错误 MSB3073 退出代码 1 并且无法加载源 index.json 的服务索引

问题描述

我试图构建我的 Docker 映像,这就是我构建它时发生的情况。有没有错误的设置?

2>C:\Program Files\dotnet\sdk\2.2.100\NuGet.targets(114,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [C:\src\DockNetMicro\DockNetMicro.csproj]
2>C:\Program Files\dotnet\sdk\2.2.100\NuGet.targets(114,5): error : No such host is known [C:\src\DockNetMicro\DockNetMicro.csproj]
2>The command 'cmd /S /C dotnet restore "DockNetMicro/DockNetMicro.csproj"' returned a non-zero code: 1
2>C:\Users\rizka.hasmulyawan\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.0.2105168\build\Container.targets(159,5): error MSB3073: The command "docker build -t "docknetmicro" -f "e:\work\note\netcoretest\docknetmicro\docknetmicro\dockerfile" --label "com.microsoft.created-by=visual-studio" ".."" exited with code 1.
2>Done building project "DockNetMicro.csproj" -- FAILED.

这是我的 Dockerfile

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

FROM microsoft/dotnet:2.2-sdk-nanoserver-1803 AS build
WORKDIR /src
COPY ["DockNetMicro/DockNetMicro.csproj", "DockNetMicro/"]
RUN dotnet restore "DockNetMicro/DockNetMicro.csproj"
COPY . .
WORKDIR "/src/DockNetMicro"
RUN dotnet build "DockNetMicro.csproj" -c Release -o /app

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

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

标签: c#asp.net-corevisual-studio-2017asp.net-core-mvcdockerfile

解决方案


这是一个已知的常见错误。您遇到的问题是您无法从容器内的 nuget 恢复包。

我建议这些来解决您的错误:

  1. 使用该图像的不同版本,该图像可能具有不同版本的 dotnet 运行时。有时不同版本的 dotnet 能够恢复包。
  2. 在您的本地主机系统中构建和发布所有内容,并将该文件夹复制到您的容器中。只需使用基本图像作为目标。将 dll 的本地输出目录保留为源。

推荐阅读