Sobes.tech
Back to questions
Senior
5

Что такое multi-stage build в Docker?

Companies where asked
CheckBox

Answer from AI

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"]

Такой подход уменьшает размер итогового образа и улучшает безопасность, так как в финальном образе нет лишних инструментов и исходников.