我正在尝试构建一个 dockerfile - 迭代地添加行和测试。我的理解是,docker 将缓存已经构建的行,并从我添加的新行开始。情况似乎是,每次我在容器上调用 build 时,它只是从头开始构建。这是正常的吗?如果不是——我做错了什么?
正如 demas 所说,如果您只是附加行,则前面的行将被缓存。
但是,如果您的 Dockerfile 中的任何位置有这样一行
ADD . /some/path
那么 Docker 会假设该行已更改,即使只是 Dockerfile 发生了更改。因此该行及其之后的任何内容都不会被缓存,除非nothing您要添加的文件夹中的内容已更改。
通过密切关注输出,您应该能够看到是否发生了这种情况docker build
命令。
附带说明:这样做的结果是,如果您正在构建 Dockerfile,您通常希望尽可能晚地将文件添加到目录中,并提前做好准备。当然,您最终将不得不对文件执行一些操作(例如某种构建过程),不幸的是,这很难缓存。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)