c# - 错误 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"]
解决方案
这是一个已知的常见错误。您遇到的问题是您无法从容器内的 nuget 恢复包。
我建议这些来解决您的错误:
- 使用该图像的不同版本,该图像可能具有不同版本的 dotnet 运行时。有时不同版本的 dotnet 能够恢复包。
- 在您的本地主机系统中构建和发布所有内容,并将该文件夹复制到您的容器中。只需使用基本图像作为目标。将 dll 的本地输出目录保留为源。
推荐阅读
- python-3.x - 配置:错误:找不到python3.7解释器
- php - 从 jQuery Ajax 发布时 PHP Json 格式错误
- parameters - 使用 EMCEE 进行星系分布参数估计的问题
- arm - 从应用程序跳转到引导加载程序后获取跳转状态
- wordpress - 网站暂停时,我不断获取缓存页面
- multicast - 使用独立的 infinispan 和 JGroups 不与 UDP 形成集群
- mongodb - 从另一个集合 mongodb 中获取匹配和不匹配的计数
- .net - GCP - 使用存储桶中的媒体文件时语音到文本的错误
- neo4j - Neo4j 加载缺少单元格的 CSV
- mysql - Mysql REPLACE INTO 错误(1292 - 截断不正确的 DOUBLE 值)