以每周一个节点,记录知识点。
2024-08-05~11
清理单个 docker buildkit cache
docker buildkit cache
使用方式
FROM node:16.15-debian10 as builder
ARG APP=undefined \
APP_ENV=test
ENV APP=$APP \
APP_ENV=$APP_ENV
WORKDIR /app_build
COPY ./ ./
RUN --mount=type=cache,id=${APP}-npm,target=/root/.npm \
--mount=type=cache,id=${APP}-modules,target=./node_modules \
npm install && npm run build:${APP_ENV}
docker buildkit cache
本地信息
# docker buildx du --verbose
# 会输出以下内容
Parent: e7uplv9v4i41z4rdkc169ezf4
Created at: 2024-08-16 07:50:14.265215424 +0000 UTC
Mutable: true
Reclaimable: true
Shared: false
Size: 2.662MB
Description: mount / from exec /bin/sh -c npm install && npm run build:${APP_ENV}
ID: da2io5ji4ahwybfxzac5cw8sr
Created at: 2024-08-16 07:50:14.265215424 +0000 UTC
Mutable: true
Reclaimable: true
Shared: false
Size: 6.303MB
Description: cached mount /app_build/test/node_modules from exec /bin/sh -c npm install && npm run build:${APP_ENV} with id "/test-modules"
其中 ID 的存储目录在 /${Docker Root Dir}/overlay2/o46ii19k9r4ripvx799m7rbf1
通过上面两个信息来看,是没办法通过 id
关键字来匹配上的,只能通过Description中的with id
关键字来查找,然后进行删除清理。
docker buildx du --verbose | grep -B6 'with id "/test-modules"' | awk '/ID:/ {print $2}' | xargs -I{} docker buildx prune --filter="ID={}" -f --verbose