Docker 无法加载源的服务索引https://api.nuget.org/v3/index.json. [C:\app\aspnetapp.csproj]
Docker命令Docker 无法加载源的服务索引https://api.nuget.org/v3/index.json. [C:\app\aspnetapp.csproj],docker,Docker,Docker命令Docker build-t aspnetapp docker build命令的错误如下 C:\Program Files\dotnet\sdk\2.1.105\NuGet.targets(104,5):错误:无法加载源的服务索引。[C:\app\aspnetapp.csproj] 以下命令返回了非零代码:1 powershell -Command $ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyC
Docker build-t aspnetapp
docker build命令的错误如下
C:\Program Files\dotnet\sdk\2.1.105\NuGet.targets(104,5):错误:无法加载源的服务索引。[C:\app\aspnetapp.csproj]
以下命令返回了非零代码:1
powershell -Command $ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; dotnet restore
也有同样的问题,问题是
NuGet
使用的依赖项缺失
我使用的是microsoft/dotnet:sdk
映像,在将libcurl3
安装到我的映像后,它就可以工作了
尝试添加
运行apt-get-update&&apt-get-install-y libcurl3
在还原之前,请将其添加到您的Dockerfile
如果不起作用,请尝试重新启动Docker实例
edit
:如果这对您没有帮助,那么在NuGet github
上会有一些人试图解决相同的问题
edit2
:添加了Ignas解决方案:重新启动docker实例。对我来说,此问题随机出现(以及多个类似问题,如“nuget权限被拒绝”等。要解决此问题,请重新启动Visual Studio)
对于windows,通过重新启动docker服务并重新启动Visual Studio(2017)修复了此问题
我通过从命令行传入docker build环境变量来实现这一点,如下所示:
docker build--build arg HTTP_PROXY=HTTP://{un}:{pw}{proxyhost}:{port}--build arg HTTPS_PROXY=HTTP://{un}:{proxyhost}:{port}-t aspnetapp
*请注意,您的用户名必须是url编码的(ei.DOMAIN\name=>DOMAIN%5Cname)打开CMD或Powershell并运行:dotnet numget locals http cache--clear 只需将
--network=host
选项添加到docker build
docker build-t aspnetapp--network=host
我在Debian 9上遇到了同样的问题。我用断开本地网络的连接来回避这个错误。它对我有效,因为我没有在代码库上更改任何内容,也不需要从nuget获取包。在我的例子中,在Dockerfile
中,我有
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
及
但我只安装了
.NET2.1
(通过dotnet查看--列出SDK
)。因此,我必须将2.2
更改为2.1
,以使其正常工作。通过禁用Avast Antivirus并卸载McAfee Antivirus,我在Windows 10计算机上解决了这一问题
- 右键单击通知选项卡中的Avast图标
- 选择Avast Shields控件
- 单击“在计算机重新启动前禁用”
如果需要,我可以提供进一步的帮助。在与代理进行了一个小时的斗争后,以下解决方案终于对我起到了很好的作用:
docker build --build-arg HTTP_PROXY=http://xxxx.com:8080 --build-arg HTTPS_PROXY=http://yyyy:8080 -t kdekarin/aspnet .
更多信息请参见@patrickbadley的评论 当主机上存在多个网络适配器且所述适配器的优先级配置错误时,就会出现这种情况。运行以下命令以显示网络适配器表:
Get-NetIPInterface -AddressFamily IPv4 | Sort-Object -Property InterfaceMetric -Descending
您希望您的主适配器(在我的情况下是wifi)具有最低的接口
Set-NetIPInterface -InterfaceAlias 'Wi-Fi' -InterfaceMetric 1
我的网络适配器表供参考:
有关更多信息,请参阅此github线程:
我很惊讶,竟然没有人这么说。这是由于没有安装最新的sdk造成的。就我而言,docker在找文件 C:\Program Files\dotnet\sdk\3.1.302\NuGet.targets 然而,这个文件在我的机器上并不存在,相反,我有一个不同的次要版本 C:\Program Files\dotnet\sdk\3.1.301\NuGet.targets
我确信他们会使用较旧的版本使其正常工作,但就我而言,我只是更新了下载的最新sdk。如果问题是由您组织的自签名证书引起的,您可以通过以下方式解决:
Copy[”/combined.cer“,“/etc/SSL/certs/”]
运行更新ca证书
这些步骤适用于Debian,需要对其他发行版进行调整。发生这种情况的另一个原因。如果您的docker文件以windows容器为目标,并且您的docker正在运行linux模式,或者反之亦然。在一些早期版本中,我必须重新启动docker服务来解决此类问题。能否尝试重新启动它并从管理员PowerShell控制台重试生成:
restart Service com.docker.Service-Force
Hi,我尝试使用管理员PowerShell,但出现相同错误。您可以尝试添加运行curlhttps://api.nuget.org/v3/index.json -v
和在DockerFile中运行dotnet restore--verbosity diag
,查看它在做什么-如果仅还原失败,或者使用curl同时失败。我收到了相同的错误,这是DockerFile从microsoft/aspnetcore build:2.0 AS build env WORKDIR/app#复制csproj并还原为不同层复制*.csproj./RUN dotnet restore#复制所有其他内容并生成副本../运行dotnet publish-c Release-o out#从microsoft/aspnetcore:2.0 WORKDIR/app COPY-FROM=build env/app/out生成运行时映像。ENTRYPOINT[“dotnet”,“aspnetapp.dll”]我也有同样的问题。你解决了吗?它甚至在MacOS中也有效。我阻止了Docker,砰的一声!感谢在Linux容器上运行eShopOnContainer应用程序,当我运行docker compose build时抛出错误:无法加载源的服务索引。[/src/eShopOnContainers services和webapps.sln]/usr/share/dotnet/sdk/3.1.201/NuGet.targets(124,5):错误:连接被拒绝[/src/e]
Get-NetIPInterface -AddressFamily IPv4 | Sort-Object -Property InterfaceMetric -Descending
Set-NetIPInterface -InterfaceAlias 'Wi-Fi' -InterfaceMetric 1