# Docker — Multistage build (one-screen) ## 1) Идея **Multistage build** — многоэтапная сборка Docker-образа: сборку делим на этапы (stages) и помечаем их. Обычно: - stage 1: “builder” (компиляция, зависимости, tooling) - stage 2: “runtime” (только артефакт + минимальный runtime) ## 2) Что даёт - **меньше итоговый образ**, - быстрее сборка/доставка (часто), - меньше зависимостей в runtime, - **меньше поверхность атаки**, - можно переиспользовать промежуточные stages. ## 3) Мини-пример ```dockerfile FROM golang:1.22 AS builder WORKDIR /src COPY . . RUN CGO_ENABLED=0 go build -o app ./cmd/app FROM gcr.io/distroless/static COPY --from=builder /src/app /app ENTRYPOINT ["/app"] ``` --- **Source:** [[Multistaging - Docker|Multistaging - Docker]]