TGViewer
DevOps DevOps @devopsitsec · 23.7K subscribers
Post #541 4.7K
🖥 5 советов, как ускорить сборку образа Docker

⏩Совет 1. Можно ли избежать создания образов?

Использование Docker не обязательно должно быть принципом «все или ничего». Вы можете использовать Docker для развертывания и создания образов для продакшн, но вам не обязательно использовать его в разработке.


⏩Совет 2. Структурируйте инструкции Dockerfile как перевернутую пирамиду.

Каждая инструкция в вашем Dockerfile приводит к созданию слоя изображения. Docker использует слои для повторного использования работы. Слои кэшируются и их не нужно пересобирать, если:
— Все предыдущие слои не изменяются.
— В случае инструкции COPY: файлы/папки не изменяются.
— В случае всех остальных инструкций: текст команды не изменяется.


⏩Совет 3. Копируйте только те файлы, которые необходимы для следующего шага.

Представьте, что у нас есть следующий фрагмент Dockerfile:
RUN mkdir /code
COPY code code/
RUN pip install code/requirements.txt

Каждый раз, когда что-либо в каталоге кода меняется, вторую строку необходимо запускать заново, а также каждую последующую строку.

Вот как мы могли бы избежать повторного запуска этапа установки при каждом изменении кода:
RUN mkdir /code
COPY code/requirements.txt code/
RUN pip install code/requirements.txt
COPY code /code



⏩Совет 4. Скачивайте меньше файлов.

Во-первых, проверьте, не загружаете ли вы зависимости разработки, которые вообще не нужны вашему образу.

Ещё нужно помнить про поведение менеджера пакетов на уровне ОС. Например, `apt`который используется в Ubuntu и Debian, по умолчанию устанавливает «рекомендуемые» пакеты.
Вы можете избежать этого, добавив к apt-get install флаг --no-install-recommends


⏩Совет 5. Используйте BuildKit с новой функцией монтирования кэша.

BuildKit — это новый механизм сборки образов, который можно использовать вместо стандартного Docker. С ним вы получаете больше параллелизма и эффективности кэширования, плюс новые интересные функции

📎 Читать подробнее

@DevOPSitsec
  • 👍 14
  • ❤ 3
More from @devopsitsec
  1. Oct 6, 2026👣 Большой разбор собеседований на Go в 2026 году На GitHub появился мощный репозиторий дл…
  2. Oct 6, 2026Для тех, кто работает с Kubernetes и облачной инфраструктурой, в октябре намечается отличн…
  3. Oct 4, 2026🚀 DevOps Interview 2026 - шпаргалка-курс для подготовки к собеседованию Всё, что спрашива…
  4. Oct 3, 2026🛠️ Awesome SRE - большая подборка ресурсов для Site Reliability Engineering Репозиторий a…
  5. Oct 2, 2026photo post
  6. Oct 1, 20265 вещей, которые сильно упростят Kubernetes в начале: 1. Сначала разберитесь с Service, и…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →