使用Docker Buildkit构建映像时,--cache from参数的顺序重要吗?

使用Docker Buildkit构建映像时,--cache from参数的顺序重要吗?,docker,caching,docker-buildkit,Docker,Caching,Docker Buildkit,假设我正在使用Docker Buildkit构建一个映像。我的图像来自多级Dockerfile,如下所示: FROM node:12 AS some-expensive-base-image ... FROM some-expensive-base-image AS my-app ... 我现在正试图建立这两个形象。假设我把这些推到Docker Hub。如果我要使用Docker Buildkit的外部缓存功能,那么我希望在构建一些昂贵的基本映像目标时,将远程一些昂贵的基本映像:最新的映像作为

假设我正在使用Docker Buildkit构建一个映像。我的图像来自多级Dockerfile,如下所示:

FROM node:12 AS some-expensive-base-image
...

FROM some-expensive-base-image AS my-app
...
我现在正试图建立这两个形象。假设我把这些推到Docker Hub。如果我要使用Docker Buildkit的外部缓存功能,那么我希望在构建
一些昂贵的基本映像
目标时,将远程
一些昂贵的基本映像:最新的
映像作为缓存,从而尝试在CI管道上节省构建时间。而且,我想把刚刚构建的
一些昂贵的基本图像
图像和远程
我的app:latest
图像作为后一个图像的缓存。我相信我需要这两种方法,以防止需要重建一些昂贵的基本映像的步骤,因为它们是昂贵的

这就是我的构建脚本的外观:

导出DOCKER\u BUILDKIT=1 docker build--build arg BUILDKIT_INLINE_CACHE=1--从某个昂贵的基本映像缓存:最新--针对某个昂贵的基本映像-t某个昂贵的基本映像:边缘。 docker build--build arg BUILDKIT_INLINE_CACHE=1--从一些昂贵的基本映像缓存:edge--从我的应用缓存:latest--针对我的应用-t我的应用:edge。
我的问题是:
--cache from
参数的顺序对第二个
docker构建
重要吗

对于此版本,我在CI管道上得到的结果不一致。构建后一个映像时会发生缓存未命中,即使没有任何可能导致缓存破坏的代码更改。可以毫无问题地拉取缓存Minefest。有时会拉取缓存映像,但有时需要重新运行后一个目标的所有步骤。我不知道为什么

在脚本中运行
docker build
命令之前,我是否应该尝试
docker拉取这两个图像

另外,我知道我在示例中提到了Docker Hub,但在现实生活中,我的应用程序使用AWS ECR作为其远程Docker存储库。这对正确的Buildkit功能有影响吗