Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 无法加载源的服务索引https://api.nuget.org/v3/index.json. [C:\app\aspnetapp.csproj]_Docker - Fatal编程技术网

Docker 无法加载源的服务索引https://api.nuget.org/v3/index.json. [C:\app\aspnetapp.csproj]

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命令
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和Visual Studio
  • Winkey+R,输入services.msc
  • 找到Docker for Windows服务并重新启动它(仅重新启动Docker通常是不够的)
  • 启动Docker和Visual Studio

  • 我通过从命令行传入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构建。
    如果需要,我可以提供进一步的帮助。

    在与代理进行了一个小时的斗争后,以下解决方案终于对我起到了很好的作用:

    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。如果问题是由您组织的自签名证书引起的,您可以通过以下方式解决:

  • 获取IT部门提供的证书文件(*.cer)
  • 将其复制到SSL证书位置:
    Copy[”/combined.cer“,“/etc/SSL/certs/”]
  • 更新SSL证书列表:
    运行更新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