使用Visual Studio 2017进行Docker构建失败,因为使用私有nuget feed还原dotnet期间超时

我有一个ASP.NET Core API,我想使用VisualStudio 2017构建Docker映像。我使用了Add Docker Support-> Linux,它生成了Dockerfile,并且由于我想使用NuGet.Config文件,因此,我对其进行了修改(COPY NuGet.Config),并且在dotnet还原期间使用了NuGet.Config文件,如下所示:

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

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY NuGet.Config ./
COPY ["Stock.Api/Stock.Api.csproj","Stock.Api/"]
COPY ["Business/Stock/Stock.csproj","Business/Stock/"]
COPY ["Business/Stock.Dto/Stock.Dto.csproj","Business/Stock.Dto/"]
RUN dotnet restore --configfile NuGet.Config "Stock.Api/Stock.Api.csproj"
COPY . .
WORKDIR "/src/Stock.Api"
RUN dotnet build "Stock.Api.csproj" -c Release -o /app

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

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

这是我使用的NuGet.Config文件,其中包含两个NuGet提要,一个公共https://api.nuget.org/v3/index.json和一个本地私有提要http://192.168.40.100:3000/nuget(192.168.40.100是我的本地@IP)

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
     <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
     <add key="MYPRIVATEFEED" value="http://192.168.40.100:3000/nuget" />
   </packageSources>
  <packageRestore>
    <add key="enabled" value="True" />
    <add key="automatic" value="True" />
  </packageRestore>
  <bindingRedirects>
    <add key="skip" value="False" />
  </bindingRedirects>
  <packageManagement>
    <add key="format" value="0" />
    <add key="disabled" value="False" />
  </packageManagement>
</configuration>

我使用VS2017,尝试构建Docker映像,在dotnet还原过程中,它在步骤10超时并失败,如您所见:

Step 10/19 : RUN dotnet restore --configfile NuGet.Config     "Stock.Api/Stock.Api.csproj"
3> ---> Running in 5c8827a8d62d
3>  Restoring packages for /src/Business/Stock/Stock.csproj...
3>  retrying 'FindPackagesByIdAsyncCore' for source 'http://192.168.40.100:3000/nuget/FindPackagesById()?id='Dto.Base'&semVerLevel=2.0.0'.
3>  The HTTP request to 'GET http://192.168.40.100:3000/nuget/FindPackagesById()?id='Dto.Base'&semVerLevel=2.0.0' has timed out after 100000ms.

我不知道为什么会有超时,因为本地供稿位于我的本地计算机中。我使用Docker for Desktop将DNS修改为自动更改为静态,我尝试了很多我在互联网上发现的方法,但没有成功。

有人知道吗?

非常感谢您

wangdaren1 回答:使用Visual Studio 2017进行Docker构建失败,因为使用私有nuget feed还原dotnet期间超时

对于那些对问题感兴趣并遇到相同问题的人,我最终卸载了Docker,然后重新安装,然后再次设置一切,它像以前一样工作…… 需要查看并了解Docker网络的工作原理…

本文链接:https://www.f2er.com/3157866.html

大家都在问