2

我们的本地 TFS 中有一个私有 nuget 提要(使用包管理扩展)。我们可以在本地和我们的构建服务器上毫无问题地使用它。现在我们正在使用 Docker,我们知道我们需要使用外部源复制一个 nuget.config,以便 dotnet 能够获取所需的包。该文件存储了所需的 url 和凭据,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <add key="XXX" value="https://xxx.xxx.xx/tfs/xxx/_packaging/xxxPackageFeed/nuget/v3/index.json" />
    </packageSources>
    <packageSourceCredentials>
        <XXX>
            <add key="Username" value="domain\user" />
            <add key="ClearTextPassword" value="password" />
        </XXX>
    </packageSourceCredentials>
</configuration>

我们已经验证,当我们使用 Windows 容器时,它可以成功构建。如果我们切换到 Linux Containers,它会失败并显示以下消息:

Step 8/17 : RUN dotnet restore -nowarn:msb3202,nu1503
 ---> Running in f2b837b36b6b
  Restoring packages for /src/xxx/xxx.csproj...
/usr/share/dotnet/sdk/2.1.101/NuGet.targets(104,5): error : Unable to load the service index for source https://xxx.xxx.xx/tfs/xxx/_packaging/xxxPackageFeed/nuget/v3/index.json. [/src/xxx.sln]
/usr/share/dotnet/sdk/2.1.101/NuGet.targets(104,5): error :   Response status code does not indicate success: 401 (Unauthorized). [/src/xxx.sln]
ERROR: Service 'xxx-dev' failed to build: The command '/bin/sh -c dotnet restore -nowarn:msb3202,nu1503' returned a non-zero code: 1

关于如何让域凭据在 Linux 容器中工作的任何想法?

4

0 回答 0