如何将大文件复制到Docker镜像中而不保存在历史logging中

我有一个大文件夹(2GB),其中包含我将在Docker镜像中编译的源代码。 编译的程序明显更小(大约120MB),因为我想保持我的图像小,我试图阻止明确运行COPY命令,因为它会创build一个新的图层。 但是,似乎并没有真正有办法同时拥有COPY + RUN命令。

有没有办法将某些东西COPY到Docker镜像中,然后将其从历史logging中删除或防止创build一个图层?

这不幸的是没有包含在Dockerfile语法中(我自己喜欢这个特性)。 有两种解决方法:

  1. 将文件托pipe在某处,并使用wget命令将其作为RUN行的一部分。 这是丑陋的,不能携带到其他人build立你的形象。

  2. 使用刚刚在1.13.0中发布的当前实验性的docker build --squash选项。 您需要更新dockerd以启用启用实验性选项。