Lework Study hard, improve every day.

学习周报「2024」8月

2024-08-01
lework
本文 1154 字,阅读全文约需 4 分钟

以每周一个节点,记录知识点。

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
原文地址 https://lework.github.io/2024/08/01/Aug/

Similar Posts

Comments