Back to questions
Junior — Middle
74
Каким образом применяешь многоступенчатую сборку для сокращения размера Docker-образов?
Answer from AI
sobes.tech AI
Многоступенчатая сборка (multi-stage build) в Docker позволяет создавать образы, где на первом этапе происходит сборка приложения, а на последующих — формируется минимальный образ только с необходимыми для запуска файлами. Это значительно сокращает размер итогового образа.
Пример Dockerfile с многоступенчатой сборкой для Go-приложения:
# Этап сборки
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
# Этап запуска
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]
Здесь на первом этапе собирается бинарник, а на втором — создается легкий образ с Alpine, куда копируется только готовый исполняемый файл.
Таким образом, можно использовать тяжелые образы с инструментами сборки только для компиляции, а в финальный образ включать только то, что нужно для запуска.