Не используйте кеш слоев, но используйте кеш монтирования при использовании docker+buildkit
При использовании buildkit, используя интерфейс docker cli, я иногда не хочу использовать Layer-cache, но хочу полагаться на более новый тип mount-cache.
RUN --mount=type=cache,target=...
Однако бег docker build --no-cache
похоже, отключает оба.
Есть ли способ выбрать так, чтобы при перестроении использовался только кеш монтирования?
1 ответ
Вы можете обойти это, запустив Dockerfile со слоем, который всегда будет меняться, делая недействительными все последующие кэшированные слои.
Подойдет ARG с постоянно меняющимися значениями. Например:
FROM whatever
ARG CACHE_EPOCH
# ... etc
docker build --pull --build-arg CACHE_EPOCH=$(date +%s)
(У меня очень похожая потребность https://stackoverflow.com/a/72993502/11715259)