在dotnet恢复阶段构建asp.net核心docker映像时,来自nexus的无效参数错误

时间:2019-08-21 09:58:53

标签: docker asp.net-core nexus docker-build

我正在开发ASP.NET Core 2.2 Web Api应用程序。此应用程序具有一个库依赖关系,该依赖关系托管在我们的Nexus OSS Nuget托管存储库中。我的开发计算机是Windows 10.我将docker用于桌面作为本地容器​​管理器和本地kubernetes实例。 Nexus OSS的版本为3.18.1-01。我将Nexus仓库地址添加到我的Nuget.config中,在本地尝试过,但没有遇到问题。 但是,当我尝试对其进行docker化时,无法在dotnet恢复阶段下载Nexus存储库中托管的软件包,并且抛出了以下错误

重试源'http://int-nexus:8081/repository/nuget-hosted/FindPackagesById()?id='Project.Common'&semVerLevel = 2.0.0'的'FindPackagesByIdAsyncCore'。无效参数

Project.Common是我在Nexus上托管的库的程序包名称。 我在Internet或Nexus已知问题网站上都找不到任何解决方案。你能帮我解决问题吗

Nuget配置文件

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <add key="internal-repo" value="http://int-nexus:8081/repository/nuget-hosted/"  />
    </packageSources>
    <activePackageSource>
        <add key="All" value="(Aggregate source)" />
    </activePackageSource>
</configuration>

Docker文件

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

# copy csproj and restore as distinct layers
COPY *.csproj Nuget.Config ./
RUN dotnet restore --configfile=Nuget.Config --no-cache --force

1 个答案:

答案 0 :(得分:0)

nexus机器已经安装在Windows机器上。我在同一网络中的另一台linux机器上安装了另一个nexus实例,并将回购地址更改为我安装的新nexus机器。 错误消息已更改并显示如下

重试源'http://int-nexus:8081/repository/nuget-hosted/FindPackagesById()?id='Project.Common'&semVerLevel = 2.0.0'的'FindPackagesByIdAsyncCore'。没有托管主机

在收到该明确的错误消息后,我了解到docker实例中的构建过程无法访问nexus机器。并检查了我的docker桌面计算机,发现我的kubernetes实例已启用,并且由于以下问题,docker容器中的实例无法访问本地网络中的任何地址。顺便说一下,我本地网络中的IP范围是10.1.7.x https://github.com/docker/for-win/issues/1667