Сборка Docker с Visual Studio 2017 завершилась неудачно, потому что тайм-аут при восстановлении dotnet с использованием частного канала nuget - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть ASP.NET Core API, для которого я хочу создать образ Docker с использованием VisualStudio 2017. Я использовал Add Docker Support -> Linux, и он сгенерировал Dockerfile, и, как я хочу использовать файл NuGet.Config,Я изменил его (COPY NuGet.Config.) И использую файл NuGet.Config во время восстановления dotnet, как вы можете видеть ниже:

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изображение, и оно завершается с таймаутом на шаге 10 во время восстановления dotnet, как вы можете видеть:

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.

Я не знаю, почему истекло время ожидания, потому что локальный канал находится на моем локальном компьютере. Я изменил DNS с помощью Docker for Desktop на автоматический и статический, я много чего пробовал в интернете, но безуспешно.

У кого-нибудь есть подсказка?

Спасибо большоемного

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...