1. Multi-stage builds
Позволяет собирать образы в несколько этапов, оставляя в финальном образе только нужное:
FROM golang:1.22 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp .
FROM alpine:3.20
COPY —from=builder /app/myapp /usr/local/bin/
ENTRYPOINT [«myapp»]
🔹 Зачем: уменьшаем размер финального образа и избавляемся от лишнего ПО (компиляторов, зависимостей).
🔹 Когда: при сборке любого backend-приложения, особенно Go, Rust, Java. Читать
