允许Docker缓存RUN结果

时间:2017-05-31 04:43:14

标签: linux ubuntu docker dockerfile apt-get

我在Dockerfile中有这些命令:

RUN apt-get -y update                                #1
RUN apt-get -y install sudo                          #2
RUN sudo apt-get -y update                           #3
RUN sudo apt-get -y upgrade                          #4
RUN sudo apt-get install -y sqlite3 libsqlite3-dev   #5

看起来Docker无法缓存第3行或第4行

有没有办法让Docker以某种方式缓存这些结果?每次构建图像​​时都需要花一两分钟来更新/升级,我希望减少这种延迟。

1 个答案:

答案 0 :(得分:2)

首先,您应该避免RUN apt-get升级或dist-upgrade,因为基本映像中的许多“基本”包不会在非特权容器内升级。如果基本映像中包含的包已过期,则应联系其维护人员。

我认为你需要在Dockerfile和amp;中运行一次apt-get update。始终将RUN apt-get update与apt-get install结合在同一个RUN语句中,如

 RUN apt-get update && apt-get install -y \
    sudo \
    sqlite3 \
    libsqlite3-dev