docker --cache-from 是否应该导致下载多个 sha-hashes?
Should docker --cache-from lead to multiple sha-hashes being downloaded?
我正在努力让 docker --cache-from
从远程存储库工作。我知道有很多怪癖,并且在推送之前构建图像时启用了 --build-arg BUILDKIT_INLINE_CACHE=1
。
当使用 --cache-from
时,我得到以下输出:
#14 importing cache manifest from eu.gcr.io/repo/image:tag1
#14 sha256:aa73a6a76a7a7a67a6a76a76b7a6b7a6b7a6b7a
#14 DONE 2.0s
如果图像中有多个图层,这里是否应该有多个 sha256-hashes?
Buildkit 只应在需要时下载一层。如果生成的图像中未使用该图层,则不需要下载它。如果该层被使用但本地不需要,因为没有依赖它的未缓存 运行 步骤,那么 buildkit 可能会跳过下载。
此外,请记住 sha256 摘要可以指向多个内容。至少,有图像清单、清单列表、图像配置(json blob)和图像层(压缩的 tar blob)。当图层未压缩时,您可能还会看到不同的摘要。因此,对于上面的内容,您可以假设它使用该摘要提取了一些东西,很可能是一个清单,而不是任何层 until/if 稍后需要它们。
我正在努力让 docker --cache-from
从远程存储库工作。我知道有很多怪癖,并且在推送之前构建图像时启用了 --build-arg BUILDKIT_INLINE_CACHE=1
。
当使用 --cache-from
时,我得到以下输出:
#14 importing cache manifest from eu.gcr.io/repo/image:tag1
#14 sha256:aa73a6a76a7a7a67a6a76a76b7a6b7a6b7a6b7a
#14 DONE 2.0s
如果图像中有多个图层,这里是否应该有多个 sha256-hashes?
Buildkit 只应在需要时下载一层。如果生成的图像中未使用该图层,则不需要下载它。如果该层被使用但本地不需要,因为没有依赖它的未缓存 运行 步骤,那么 buildkit 可能会跳过下载。
此外,请记住 sha256 摘要可以指向多个内容。至少,有图像清单、清单列表、图像配置(json blob)和图像层(压缩的 tar blob)。当图层未压缩时,您可能还会看到不同的摘要。因此,对于上面的内容,您可以假设它使用该摘要提取了一些东西,很可能是一个清单,而不是任何层 until/if 稍后需要它们。