在Docker构建过程中安装C 软件包

Installing c++ packages during Docker build

本文关键字:软件包 安装 过程中 Docker 构建      更新时间:2023-10-16

我有一个用于运行C 应用程序的Dockerfile。Docker文件的一部分具有以下命令:

RUN tar -xvf boost_1_56_0.tar.bz2 && 
cd boost_1_56_0 && 
./bootstrap.sh && 
./b2 install

焦油文件是Docker映像的一部分。问题在于,每次我构建dockerfile时,整个软件包都会安装,这需要大量时间。我该如何防止它?

如果什么都没有更改为docker文件中的命令,则docker将使用以前构建中的缓存数据。因此,如果您有这样的东西:

ADD ./myfiles /path/in/container  # changes each time
RUN tar -xvf boost # etc

然后,每次都会重建Boost。但是,如果这样重新组织您的Dockerfile:

RUN tar -xvf boost # etc
ADD ./myfiles /path/in/container  # changes each time

然后,您上次码头版本的Boost的二进制构建将从缓存中重复使用。更一般地,将事物放在码头文件中,更改的可能性就越小。