You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Buildx使用--no-cache仍命中缓存的问题求助

解决Docker Buildx使用--no-cache仍命中缓存的问题

问题原因

Docker Buildx的--no-cache仅禁用本地构建缓存,但如果你的Buildx构建器配置了远程缓存(比如之前通过--cache-to/--cache-from绑定过远程存储),构建过程仍会从远程拉取缓存并复用,导致步骤标记为CACHED。

解决方案

方案1:构建时强制禁用所有缓存

在命令中添加--cache-to和--cache-from参数,指定空的本地缓存路径,彻底避免使用任何缓存:

docker buildx build --no-cache --pull \
  --cache-to type=local,dest=/dev/null \
  --cache-from type=local,src=/dev/null \
  --build-arg VERSION=4.0.0 \
  --build-arg ONEPUB_TOKEN=xxxxx= \
  -t onepub/xxx:4.0.0 \
  -f vaadin.dockerfile .

方案2:使用临时构建器实例

创建一个全新的临时Buildx构建器,完全隔离现有缓存配置,构建完成后可删除:

# 创建并使用临时构建器
docker buildx create --use --name temp-builder
# 执行无缓存构建
docker buildx build --no-cache --pull \
  --build-arg VERSION=4.0.0 \
  --build-arg ONEPUB_TOKEN=xxxxx= \
  -t onepub/xxx:4.0.0 \
  -f vaadin.dockerfile .
# (可选)删除临时构建器
docker buildx rm temp-builder

方案3:检查基础镜像拉取状态

如果基础镜像步骤显示CACHED,确认--pull参数是否生效:

  • 若基础镜像(如FROM ubuntu:22.04)本身没有更新,Docker会复用本地已拉取的最新镜像层,这属于正常行为,并非缓存问题。
  • 若需要强制重新拉取基础镜像并重新构建该层,可确保基础镜像标签为latest或明确指定版本号,同时结合--pull参数。

内容的提问来源于stack exchange,提问作者Brett Sutton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 06:26:15