有没有一种好的方式来创建一个认证机制,使得Devops能够访问artifact NuGet feed?我想为我的团队创建一个基础镜像,他们可以从我们的Azure容器注册表中拉取一个可以访问我们的devops nuget feed的镜像。理想情况下,人们不需要在每个项目中都有相同的Dockerfile代码,从其主机构建系统中获取PAT。这也将使我们能够更好地进行CICD。
我的当前解决方案
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app
ARG IT_PAT
ENV VSS_NUGET_EXTERNAL_FEED_ENDPOINTS "{\"endpointCredentials\": [{\"endpoint\": \"https://pkgs.dev.azure.com/MNPIT/_packaging/MNP/nuget/v3/index.json\",\"username\": \"build\",\"password\": \"${IT_PAT}\"}]}"
RUN mkdir -p $HOME/.nuget/plugins
WORKDIR /deps
# Downloads and installs the NuGet credential plugin so we can login to the private NuGet feed
RUN curl https://github.com/microsoft/artifacts-credprovider/releases/download/v0.1.24/Microsoft.NetCore2.NuGet.CredentialProvider.tar.gz -L -o creds.tar.gz -s
RUN tar -xzf creds.tar.gz
RUN cp -r plugins/netcore/ ~/.nuget/plugins
- 每个构建文件中都有股票代码
- 每个用户都使用PAT配置其环境变量
- 在每次构建时传递PAT
- 无法与自动化构建系统配合使用