在Docker容器中包含NuGet私有源的安全方法

时间:2019-06-24 14:39:46

标签: docker .net-core nuget

我正在为ASP.NET Core服务器设置一个Docker容器,并且需要在构建和运行项目之前找到一种安全的方法来还原NuGet软件包。

我设法装入了一个驱动器,其中包含专门为此目的创建的新NuGet.config文件,因为我的团队没有将配置文件作为Git存储库的一部分包含在内,但是感觉很不对。 > 由于用于.NET Core运行时/ SDK的官方Docker映像不包含nuget作为库的一部分,因此有人建议下载Windows映像仅用于运行nuget source add,但这似乎也很糟糕。

我的Dockerfile:

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base
WORKDIR /app
EXPOSE 5050

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

#Config file needs to be in root of solution or in User/share
RUN dotnet restore "MyProject.csproj"

添加私有NuGet源应该可以实现,而无需下载2GB的Windows映像或复制包含密码的现有配置文件。

2 个答案:

答案 0 :(得分:1)

具有一个nuget.config文件,该文件仅列出了软件包中包含源代码的软件包源,而不是凭据。

使用cross platform authentication providers允许开发人员和CI计算机对您的私人供稿进行身份验证。

答案 1 :(得分:0)

设置nuget的源路径不够好吗?

RUN dotnet restore -s https://api.nuget.org/v3/index.json -s https://my-local-private-nuget-source/nuget/nuget