我们的本地 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 容器中工作的任何想法?