我尝试在我的构建脚本中添加(覆盖)一个私有的nuget源代码,以便添加用户/pw -并使其不受我的源代码控制。到目前为止,我尝试的是:
nuget
未被识别为映像内的命令dotnet nuget
没有添加其他源的命令- 安装nuget不会影响
dotnet restore
FROM mcr.microsoft.com/dotnet/core/sdk:2.2
RUN apt-get update && apt-get install -y nuget
RUN nuget source Add -Name "Private Feed" -Source ".." -UserName "UserVAR" -Password "PassVAR"
RUN dotnet restore
5条答案
按热度按时间mdfafbf11#
我目前的解决方法是创建一个
nuget.config
的副本,其中packageSourceCredentials
部分包含用户名和密码的占位符。然后用这个文件替换现有的nuget.config
,并用环境变量替换用户名和密码。唯一的缺点是我需要保持两个配置文件同步。如果我在项目中修改了我的
nuget.config
,我需要记住也更新副本。nuget.config.template
Dockerfile
.gitlab-ci.yml
hsgswve42#
通过将nuget.config添加到solution/project中并将其复制到Docker项目中:
您可以添加源代码,然后成功构建docker。
carvr3hs3#
1.在你的私有feed中,如果是azure工件,创建一个具有完全访问权限的个人访问令牌。
1.将NuGet.config文件添加到项目的根目录
ClearTextPassword密钥是您PAT
1.将这两行添加到docker文件的copy部分
最后运行你的Docker build,它应该可以工作。
093gszye4#
nuget source
命令是nuget.exe命令行界面的一部分,只能在Linux上与Mono结合使用。因为mcr.microsoft.com/dotnet/core/sdk镜像是一个Linux容器(准确地说是Debian),所以您需要自己安装Mono和Nuget才能使用该命令。你的另一个选择是获取official Mono docker image并安装.NET Core和NuGet.exe。cgyqldqp5#
2023年答案
无安全
WebApplication3的这段代码工作得很好。我们使用BaGet NuGet服务器在Nuget.org和我们的构建服务器之间建立代理,以便更快地加载我们使用的常用软件包。
带基本认证