我有一个用于运行c ++应用程序的dockerfile。 docker文件的一部分具有以下命令:
RUN tar -xvf boost_1_56_0.tar.bz2 && \
cd boost_1_56_0 && \
./bootstrap.sh && \
./b2 install
tar文件是docker镜像的一部分。 问题是每次我构建dockerfile时都会安装整个软件包,这需要花费大量的时间。我该如何预防?
答案 0 :(得分:1)
如果在docker文件中没有更改任何内容并且包括命令,则Docker将使用先前构建中的缓存数据。所以,如果你有这样的事情:
ADD ./myfiles /path/in/container # changes each time
RUN tar -xvf boost # etc
然后每次都会重建升力。但是如果像这样重组你的Dockerfile:
RUN tar -xvf boost # etc
ADD ./myfiles /path/in/container # changes each time
然后,从缓存中重用上一个docker构建的boost的二进制构建。更一般地说,在Docker文件中提前更新它们的可能性就越小。