带有外部文件的Docker构建

时间:2018-06-28 05:55:03

标签: docker .net-core dockerfile

我有一个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

1 个答案:

答案 0 :(得分:0)

根据信息的敏感程度,我可以想到两个简单的选择:

  1. 如果它非常敏感,则可以在docker的外部中构建二进制文件,并通过复制二进制文件来创建最终映像。

  2. 如果您可以在临时构建容器中允许敏感信息(但不能在最终发货的映像中),则可以进行多阶段构建(例如this one)。 (当然,在构建之前,您必须确保nuget.config.上下文中。)