TGViewer
DevOps DevOps @i_devops · 8.83K subscribers
Post #2823 1.35K
🔥 Как ускорить docker build и сократить размер образа

Иногда docker build тянется вечность, а итоговый образ весит больше, чем база данных 🐘. Разбираемся, как ускорить сборку и оптимизировать размер образа без потери функциональности.


1. Используй multistage build
Разделяй стадии сборки и финальный образ. Это особенно важно при компиляции (Go, Java, Node.js):


# Стадия 1: билд
FROM golang:1.20 as builder
WORKDIR /app
COPY . .
RUN go build -o app

# Стадия 2: минимальный runtime
FROM alpine:latest
COPY --from=builder /app/app /usr/local/bin/app
ENTRYPOINT ["app"]


Образ получается меньше 10 МБ!


2. Минимизируй base image
Используй alpine, distroless, scratch, если не нужен полноценный дистрибутив:


FROM python:3.12-slim


Или вообще:


FROM scratch



3. Правильно расставляй COPY и RUN
Кешируй слои — сначала зависимости, потом исходники:


COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .


Так pip install не будет повторяться при каждом изменении исходников.


4. Убирай мусор и временные файлы
После установки пакетов — чисти кэш:


RUN apt-get update && apt-get install -y ... \
&& rm -rf /var/lib/apt/lists/*



5. Используй .dockerignore
Иначе в билд попадут node_modules, .git, логи и прочее:


.git
node_modules
*.log



Вывод:
Минимизация образа — это не только про размер, но и про безопасность (меньше surface area), скорость CI/CD, стабильность. И не забывай — docker build тоже надо профилировать.

#devops #docker #ci #optimization

Подпишись 👉 @i_DevOps
  • 👍 10
More from @i_devops
  1. Oct 9, 2026LLM сжигает токены, security gate задерживает релиз, секреты нужно восстановить после сбоя…
  2. Oct 8, 2026Docker изнутри: исчерпывающее руководство. Механизмы контейнеризации + примеры, эксперимен…
  3. Oct 7, 2026Тренировки по DevOps. Часть 2 Лекция 7: Сети. Часть 2. Коробки и коты Лекция 8: Как запуст…
  4. Oct 7, 2026💻Практический вебинар «СТРАТЕГИЯ РЕЗЕРВНОГО КОПИРОВАНИЯ» 📹 15 октября в 11:00 Мск за 90…
  5. Oct 6, 2026Тренировки по DevOps. Часть 1 Лекция 1: Кто такой DevOps Лекция 2: Облако. Кто виноват и ч…
  6. Oct 5, 2026k8s-cleaner — это утилита для автоматической очистки ресурсов Kubernetes, которые больше н…
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 →