Docker图像缓存失效何时发生?
也许我的Google Foo不够强大,但我无法找到有关何时缓存中的Docker镜像无效的明确列表.具体来说,我至少在这些场景中感兴趣: >因mtime changes vs checksum changes而失效.适用于何时?它可以处理不同的源路径(例如,不同目录中的存储库的克隆)吗? 最佳答案
从Docker 1.8开始,Docker不再使用mtime来使缓存无效(这在此拉取请求#12031中已更改).
建立图像时; >对于本地内容(ADD myfiles / somewhere / COPY myfiles / somewhere),docker使用校验和更改来使缓存无效 Docker 1.9引入了对build-time arguments的支持,它允许您传递可以在Dockerfile中使用的变量,这样您就不必编辑Dockerfile来破坏缓存,或者安装不同版本的软件包. 例如
默认情况下会添加http://example.com/package-1.0.0.gz,但是,传递“major”,“minor”或“patch”构建时参数可以覆盖要下载的版本,并使缓存无效;
有关build-cache的更多信息,请参阅文档中的the build-cache section.
Docker不会自动下载更新的图像,也不会更新基于它们的图像.但是,如果docker pull yourbaseimage,并且下载了较新的映像,则基于该映像的构建缓存无效,因此下一个构建将不使用缓存. 对于Docker hub上的自动构建,您可以确保在更新基本映像时自动重建映像,请参阅documentation on automated builds (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |