如何将大文件复制到Docker镜像中而不保存在历史logging中
我有一个大文件夹(2GB),其中包含我将在Docker镜像中编译的源代码。 编译的程序明显更小(大约120MB),因为我想保持我的图像小,我试图阻止明确运行COPY
命令,因为它会创build一个新的图层。 但是,似乎并没有真正有办法同时拥有COPY
+ RUN
命令。
有没有办法将某些东西COPY
到Docker镜像中,然后将其从历史logging中删除或防止创build一个图层?
这不幸的是没有包含在Dockerfile语法中(我自己喜欢这个特性)。 有两种解决方法:
-
将文件托pipe在某处,并使用wget命令将其作为
RUN
行的一部分。 这是丑陋的,不能携带到其他人build立你的形象。 -
使用刚刚在1.13.0中发布的当前实验性的
docker build --squash
选项。 您需要更新dockerd以启用启用实验性选项。