Iniciar sesión Registro
Anuncios
Tu espacio publicitario
Reserva este slot exclusivo para el periodo elegido.
Comprar publicidad →
Logotipo de la comunidad de telegram - Євгеній Гизила
Añadido 06 ene. 2025

Євгеній Гизила

@hyzyla_blog
Número de suscriptores: 601
Fotos: 58
Enlaces: 139
Descripción:
Автор @hyzyla Пишу про різне зі світу веб розробки: власний досвід, Python, React, TypeScript, стартапи і власні думки
Fuente

Євгеній Гизила | docker build cacheНедавно відкрив для себе, що в докері разом з команд...

Logotipo de la comunidad de telegram - Євгеній Гизила Євгеній Гизила @hyzyla_blog
1 040 Vistas/Alcance 2025-07-20 10:55 Mensaje №191
docker build cacheНедавно відкрив для себе, що в докері разом з командою RUN можна зробити mount [1] файлів з хоста, які будуть доступні тільки при збірці і не попадуть у фінальний імедж. Дуже зручна штука особливо для різних кеш файлів. Наприклад, раніше після вставновлення apt пакета треба було видаляти проміжні файли, щоб не роздувати розмір імеджа.RUN apt update \ && apt install … \ && rm -rf /var/lib/apt/lists/* Але для мене більшою проблемою було те, що ми втрачаємо ці проміжні файли і якщо додати ще один пакет до apt install, то весь шар в докері відразу ж стає протухшим. Наступний раз коли запускаємо білд, то apt update починає викачувати всі метадані з чистого нуля і це триває, за моїми підрахунками, цілу вічність.Зmount=type=cache можна в імеджі до /var/cache/apt примаунити ефемерний кеш volume, який буде шаритися між build запусками і тому наступний раз apt update відпрацює вже набагато швидше. І як бонус не треба в кінці команди видаляти кеш файли, бо цей cache volume не потрапляє у фінальний імедж.Я взагалі цей параметр побачив вперше в документації до uv [2]:RUN --mount=type=cache,target=/root/.cache/uv \ uv sync тому він добре працює і для збірки пакетів чи вставнлення залежностей1. RUN --mount=type=cache2. Using uv in Docker