如果我想在Docker中的Github中安装发行版本的代码,我怎么能在图像中占用尽可能少的空间呢?目前,我做过类似的事情:
RUN wget https://github.com/some/repo/archive/v1.5.1.tar.gz¬
RUN tar -xvzf v1.5.1.tar.gz¬
WORKDIR /unzipped-1.5.1/¬
RUN make; make install
这里的问题是最终图像将包含下载的tar,解压缩的版本以及make
期间创建的所有内容。我不需要绝大多数这个。如何在不保留所有额外数据的情况下在我的图像中安装我的库?
答案 0 :(得分:0)
这是docker multi-stage build旨在解决的问题的教科书定义。
我们的想法是使用带有依赖项的单独构建,并使用该docker镜像构建最终产品。
请注意,这仅适用于新版本的Docker(17.05及更高版本)。