Назад к вопросам
Senior
4
Что такое multi-stage build в Docker?
Компании, где спрашивали
CheckBox
Ответ от нейросети
sobes.tech AI
Multi-stage build в Docker — это техника, позволяющая использовать несколько этапов сборки в одном Dockerfile. Это помогает создавать компактные и оптимизированные образы, отделяя этапы сборки и финального запуска приложения.
Идея в том, что на первых этапах можно использовать тяжелые образы с инструментами для компиляции и сборки, а на последних — копировать только необходимые артефакты в минимальный образ для запуска.
Пример:
# Этап сборки
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
# Финальный этап
FROM alpine:latest
COPY --from=builder /app/myapp /usr/local/bin/myapp
CMD ["myapp"]
Такой подход уменьшает размер итогового образа и улучшает безопасность, так как в финальном образе нет лишних инструментов и исходников.