我正在尝试优化我的Docker仓库中的存储,并在使用远程缓存时遇到问题。
我的Docker文件如下:
FROM java:11-debian
LABEL maintainer="Me"
ENV LANG en_US.utf8
RUN addgroup --system --gid 51170 myusername
...
如果我多次本地构建,则会使用缓存。
对于Jenkins流水线,我总是使用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
日志输出如下:
...
---> 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的区别是什么?