在Docker构build期间安装c ++包
我有一个dockerfile运行一个c + +应用程序。 部分docker文件有以下命令:
RUN tar -xvf boost_1_56_0.tar.bz2 && \ cd boost_1_56_0 && \ ./bootstrap.sh && \ ./b2 install
tar文件是docker映像的一部分。 问题是,每次我build立dockerfile时,整个软件包会被安装,这需要花费很长的时间。 我怎样才能防止它?
如果Docker文件中没有任何内容被修改,那么Docker将使用先前构build的caching数据。 所以,如果你有这样的事情:
ADD ./myfiles /path/in/container # changes each time RUN tar -xvf boost # etc
然后每次都会重build。 但是,如果重新组织你的Dockerfile像这样:
RUN tar -xvf boost # etc ADD ./myfiles /path/in/container # changes each time
然后,从最后一个Docker构build的二进制构build将从caching中重用。 更一般地说,把更早的事情放在Docker文件中,他们改变的可能性就越小。