1.3Kпросмотров
14.0%от подписчиков
8 февраля 2026 г.
Score: 1.5K
👣 Multi-stage build: лёгкие и быстрые Docker-образы Docker-совет по оптимизации: уменьшите размер образа в несколько раз с помощью multi-stage build. Многие образы весят сотни мегабайт, потому что в них остаются:
- компиляторы - dev-зависимости - временные файлы сборки Но в продакшене нужен только готовый бинарь или собранное приложение. Решение — многоэтапная сборка. Идея:
1. В первом этапе — собираем проект 2. Во втором — копируем только результат 3. Всё лишнее остаётся в предыдущем слое и не попадает в финальный образ Пример для Go: # Stage 1 - сборка
FROM golang:1.22 AS builder WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o app # Stage 2 - минимальный образ
FROM alpine:3.20 WORKDIR /app
COPY --from=builder /app/app . CMD ["./app"] Что это даёт:
- размер образа уменьшается в 5–20 раз - быстрее pull и deploy - меньше поверхность для уязвимостей - быстрее запуск контейнеров Аналогично работает для:
- Node (build → copy dist) - Python (wheel → runtime) - Java (build → copy jar) Главная идея: в продакшен-образе должно быть только то, что нужно для запуска.