我有一个docker文件,该文件在容器内执行简单的dotnet restore
,基本上是这样的:
FROM microsoft/dotnet:2.1-sdk-alpine as build-env
COPY . .
RUN dotnet restore
现在,有时dotnet restore
需要外部软件包,即外部nuget.config
文件。
取决于您是否使用Windows / mac等,可以在各个位置找到此文件,但是始终希望操作员知道其位置。
此外,此文件具有敏感信息,因此不能在存储库中。我只想做docker build .
时要将文件传递到Docker容器中。该文件将不属于.
上下文,并将位于其他位置。
从概念上讲,我想做docker build -file "c:\XXX\Nuget.Config"
,然后在docker内部使用它。如果我能以某种方式在构建时将该文件/目录挂载到该卷中,则可以选择 。
任何帮助将不胜感激。
PS:我已经考虑过docker-compose
,因此可能会考虑使用该解决方案,尽管现在我只想保持简单并使用docker
答案 0 :(得分:0)
根据信息的敏感程度,我可以想到两个简单的选择:
如果它非常敏感,则可以在docker的外部中构建二进制文件,并通过复制二进制文件来创建最终映像。
如果您可以在临时构建容器中允许敏感信息(但不能在最终发货的映像中),则可以进行多阶段构建(例如this one)。 (当然,在构建之前,您必须确保nuget.config
在.
上下文中。)