Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker本地缓存与远程缓存(--cache from)_Docker_Jenkins_Caching - Fatal编程技术网

Docker本地缓存与远程缓存(--cache from)

Docker本地缓存与远程缓存(--cache from),docker,jenkins,caching,Docker,Jenkins,Caching,我试图优化docker注册表中的存储,但在使用远程缓存时遇到了问题 我的docker文件如下所示: FROM java:11-debian LABEL maintainer="Me" ENV LANG en_US.utf8 RUN addgroup --system --gid 51170 myusername ... ... ---> f6363f58bc32 Step 2/18 : LABEL maintainer="Me" ---> Using cach

我试图优化docker注册表中的存储,但在使用远程缓存时遇到了问题

我的docker文件如下所示:

FROM java:11-debian

LABEL maintainer="Me"
ENV LANG en_US.utf8

RUN addgroup --system --gid 51170 myusername

...
 ...
   ---> f6363f58bc32
 Step 2/18 : LABEL maintainer="Me"
   ---> Using cache
   ---> 54efd5e63c04
 Step 3/18 : ENV LANG en_US.utf8
   ---> Using cache
   ---> 6865c5539193
 Step 4/18 : RUN addgroup --system --gid 51170 myusername
  Removing intermediate container f8d05d2e5f16
   ---> af5202782abc
...
如果我在本地多次构建缓存,那么缓存将被使用

对于Jenkins pipeline,我总是在生成当前消息之前,用latest标记我的上一次生成,并提取上一次的latest:

docker pull artifactory/image:latest
docker build -t artifactory/image --cache-from artifactory/image:latest .
docker tag artifactory/image artifactory/image:latest
docker push artifactory/image:latest
日志输出如下所示:

FROM java:11-debian

LABEL maintainer="Me"
ENV LANG en_US.utf8

RUN addgroup --system --gid 51170 myusername

...
 ...
   ---> f6363f58bc32
 Step 2/18 : LABEL maintainer="Me"
   ---> Using cache
   ---> 54efd5e63c04
 Step 3/18 : ENV LANG en_US.utf8
   ---> Using cache
   ---> 6865c5539193
 Step 4/18 : RUN addgroup --system --gid 51170 myusername
  Removing intermediate container f8d05d2e5f16
   ---> af5202782abc
...
在远程缓存的情况下,为什么不缓存RUN?本地缓存和--cache from的用法有什么区别?

from

要将图像用作缓存源,需要在创建时将缓存元数据写入图像中。这可以通过在构建映像时设置
--build arg BUILDKIT\u INLINE\u CACHE=1来实现。之后,生成的映像可以用作后续生成的缓存源

此外,要使用Docker BuildKit,您的环境中必须有
Docker\u BuildKit=1
。最简单的方法是

DOCKER_BUILDKIT=1 docker build ...