cache使用原理
当某一层(layer)修改后,后面的layer都不能使用缓存
- Dockerfile修改之前:
FROM python:3.9.5-slimCOPY app.py /zhangtao/app.pyRUN pip3 install flaskWORKDIR /zhangtaoENV FLASK_APP=app.pyEXPOSE 5000CMD ["flask","run","-h","0.0.0.0"]
如果修改了app.py,那么后面的layer均不能使用缓存
- 调整Dockerfile的顺序
FROM python:3.9.5-slimRUN pip3 install flaskCOPY app.py /zhangtao/app.pyWORKDIR /zhangtaoENV FLASK_APP=app.pyEXPOSE 5000CMD ["flask","run","-h","0.0.0.0"]
调整之后pip3 install flask就能使用缓存,从而加快镜像的构建
使用技巧
将经常变化不能使用cache的layer往后放,把变动较少的layer往前放,从而提高构建镜像的速度。
