在Docker构建过程中从主机复制文件以最小化映像大小

时间:2019-05-07 09:16:30

标签: docker

我正在创建一个容器映像,其中安装了两个大型(10GB)应用程序。我目前正在使用:

COPY <installer.file> <dest>

RUN <install application> \
   && rm <application installer file>

但是,我的印象是,如果我能够做到以下几点:

RUN cp <installer files from host> \
   && <install application> \
   && rm <application installer file>

我的图像文件会小很多。 (为澄清起见,这将删除其中包含安装程序文件的层。)

我知道直到构建过程结束才挂载卷-还有其他方法可以做到吗?

1 个答案:

答案 0 :(得分:1)

您可以使用多阶段构建:

FROM some_image as build

COPY <installer.file> <dest>

RUN <install application> \
   && rm <application installer file>

FROM some_image

COPY --from=build / /

这样,您的最终映像将仅包含已安装的应用程序,而没有中间层。

在最后一行中,您还可以仅复制实际安装了应用程序的此文件夹。