cache使用原理

当某一层(layer)修改后,后面的layer都不能使用缓存

  • Dockerfile修改之前:
  1. FROM python:3.9.5-slim
  2. COPY app.py /zhangtao/app.py
  3. RUN pip3 install flask
  4. WORKDIR /zhangtao
  5. ENV FLASK_APP=app.py
  6. EXPOSE 5000
  7. CMD ["flask","run","-h","0.0.0.0"]

如果修改了app.py,那么后面的layer均不能使用缓存

  • 调整Dockerfile的顺序
  1. FROM python:3.9.5-slim
  2. RUN pip3 install flask
  3. COPY app.py /zhangtao/app.py
  4. WORKDIR /zhangtao
  5. ENV FLASK_APP=app.py
  6. EXPOSE 5000
  7. CMD ["flask","run","-h","0.0.0.0"]

调整之后pip3 install flask就能使用缓存,从而加快镜像的构建
八、Dockerfile技巧-合理使用缓存 - 图1

使用技巧

将经常变化不能使用cache的layer往后放,把变动较少的layer往前放,从而提高构建镜像的速度。