我在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以某种方式缓存这些结果?每次构建图像时都需要花一两分钟来更新/升级,我希望减少这种延迟。
答案 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