【发布时间】:2019-02-12 04:17:52
【问题描述】:
我正在尝试构建一个 docker 映像来避免不必要的体积,我遇到了一个我认为应该很常见的问题,但到目前为止我还没有找到一个简单的解决方案。 (我在 ubuntu 18.04 系统上构建 docker,并从 FROM ubuntu 层开始。)
特别是,我需要在映像中安装一个非常大的 .deb 文件(超过 3G)。 COPY 或 ADD 然后 RUN dpkg -i 很容易,但这会导致我不需要的几个 GB 空间的重复。当然,仅删除文件并不会减小图像大小。
我希望能够挂载一个卷来访问.deb 文件,而不是COPY 它,这在运行容器时很容易做到,但在构建容器时显然不可能做到?
到目前为止,我想出的是将 docker 构建到我将 ADD 文件的位置,然后在安装卷的情况下运行它,这样我就可以在没有 COPYing 的情况下从容器中访问它它,然后我 dpkg -i 它,然后我执行 docker commit 以从该容器创建图像。果然,我最终得到了一个比我第一次尝试的图像小 3GB 以上的图像,但这似乎是一种 hack,并且使构建脚本变得更加复杂。
我认为必须有更合适的方法来实现这一点,但到目前为止我的搜索还没有找到明显的答案。我错过了什么吗?
【问题讨论】:
标签: docker dockerfile docker-build