gpt4 book ai didi

docker - 为什么Docker build不使用构建缓存?

转载 作者:行者123 更新时间:2023-12-02 18:57:32 29 4
gpt4 key购买 nike

每次更改Dockerfile时,即使我在文件末尾进行了更改,docker也会重新运行所有命令。这些命令是而不是缓存的。

最佳答案

在这种特殊情况下,我的图像所基于的图像包含以下语句

ONBUILD ADD . /some/path

这意味着,当我的 Dockerfile更改时,我的 Dockerfile中的任何语句都无法缓存,因为 ADD . /some/path在我的任何语句执行之前就已执行。

通常:如果 ADD . /some/path中有一个 Dockerfile语句,则该语句之后的任何语句都无法缓存,因为对 Dockerfile的更改会使缓存无效。

我的解决方案是将要添加的文件放入子目录 my_data中,然后将子目录的内容添加到路径中:
ADD my_data /some/path

不幸的是,将 Dockerfile添加到 .dockerignore并没有帮助,因为这样 docker build无法执行,因为它找不到 Dockerfile并收到错误 Dockerfile was excluded by .dockerignore pattern 'Dockerfile'

关于docker - 为什么Docker build不使用构建缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26259519/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com