Подтвердить что ты не робот

Не удалось загрузить индекс службы для источника https://api.nuget.org/v3/index.json. [C:\приложение\aspnetapp.csproj]

https://github.com/dotnet/dotnet-docker-samples/tree/master/aspnetapp Сборка Docker команды Docker build -t aspnetapp.

Я получаю сообщение об ошибке для команды сборки Docker как C:\Program Files\dotnet\sdk\2.1.105\NuGet.targets(104,5): ошибка: невозможно загрузить индекс службы для источника https://api.nuget.org/v3/index.json. [C:\приложение\aspnetapp.csproj]

[введите описание изображения здесь]

[1]PS C:\Users\pssharma\dotnet-docker-samples\aspnetapp> docker build -t aspnetapp .
Sending build context to Docker daemon  2.444MB
Step 1/10 : FROM microsoft/aspnetcore-build:2.0 AS build-env
 ---> eb21d939e0d8
Step 2/10 : WORKDIR /app
 ---> Using cache
 ---> d4ec30216ed7
Step 3/10 : COPY *.csproj ./
 ---> Using cache
 ---> 2ff39b5e6cb4
Step 4/10 : RUN dotnet restore
 ---> Running in 776764a35311
  Restoring packages for C:\app\aspnetapp.csproj...
  Restoring packages for C:\app\aspnetapp.csproj...
C:\Program Files\dotnet\sdk\2.1.105\NuGet.targets(104,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [C:\app\asp
C:\Program Files\dotnet\sdk\2.1.105\NuGet.targets(104,5): error :   An error occurred while sending the request. [C:\app\aspnetapp.csproj]
C:\Program Files\dotnet\sdk\2.1.105\NuGet.targets(104,5): error :   The operation timed out [C:\app\aspnetapp.csproj]
The command 'powershell -Command $ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; dotnet restore' returned a non-zero code: 1[enter image description here][2]
4b9b3361

Ответ 1

Для меня эта проблема возникла случайным образом (наряду с несколькими аналогичными проблемами, такими как "разрешение отклонено для nuget" и т.д. Чтобы исправить это, перезапустите Visual Studio). Для окон это было исправлено перезагрузкой службы докеров и перезапуском Visual Studio (2017).

  1. Завершите работу Docker и Visual Studio
  2. Winkey + R, введите services.msc
  3. Найдите Docker для Windows Service и перезапустите его (перезапускать Docker обычно недостаточно)
  4. Запустите Docker и Visual Studio

Ответ 2

Я получил это, передав переменные окружения сборки docker из командной строки следующим образом:

docker build --build-arg HTTP_PROXY=http://{un}:{pw}@{proxyhost}:{port} --build-arg HTTPS_PROXY=http://{un}:{pw}@{proxyhost}:{port} -t aspnetapp.

* обратите внимание, что ваше имя пользователя должно быть закодировано в URL (например, DOMAIN\name => DOMAIN% 5Cname)

Ответ 3

У той же проблемы была проблема с отсутствующей зависимостью, используемой NuGet.

Я использую образ microsoft/dotnet:sdk, и он работает после установки libcurl3 на мой образ.

Попробуйте добавить RUN apt-get update && apt-get install -y libcurl3 в свой Dockerfile перед восстановлением.

если это не работает, попробуйте перезапустить ваш экземпляр Docker.

edit: если это не поможет вам, то есть открытая проблема на NuGet github где некоторые люди пытаются решить ту же проблему.

edit2: добавлено решение Ignas: перезапуск экземпляра edit2.

Ответ 4

Просто добавьте опцию --network=host в docker build

docker build -t aspnetapp . --network=host

Ответ 5

Откройте CMD или Powershell и запустите: локальный http-кеш dotnet nuget --clear

https://status.nuget.org/

Ответ 6

У меня была такая же проблема на Debian 9. Я выдумал ошибку при отключении от локальной сети. Это работает для меня, потому что я ничего не изменил на базе кода, и мне не нужно получать пакеты от Nuget.

Ответ 7

В моем случае в Dockerfile у меня есть

FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build

и

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2

Но у меня установлен только .net 2.1 (просмотр dotnet --list-sdks). Поэтому я должен изменить 2.2 на 2.1, чтобы он работал.

Ответ 8

Решение @patrickbadley работает для меня.

Я получил это, передав переменные окружения сборки docker из командной строки следующим образом:

сборка докера --build-arg HTTP_PROXY = http://{un}: {pw} @{proxyhost}: {порт} --build-arg HTTPS_PROXY = http://{un}: {pw} @{proxyhost}: {порт} -t aspnetapp.