Sobes.tech
Intern
19

Что такое Multistage-сборка в Docker и зачем она нужна?

Companies where asked
Т-БанкТ-Банк

Answer from AI

sobes.tech AI

Multistage-сборка в Docker — это метод создания Docker-образов, при котором используется несколько этапов (stage) сборки в одном Dockerfile. На первых этапах происходит компиляция и подготовка приложения, а на последних — формируется минимальный финальный образ без лишних инструментов и исходников.

Зачем нужна:

  • Уменьшение размера итогового образа, так как в финальный образ попадают только необходимые для запуска файлы.
  • Повышение безопасности — в образ не попадают инструменты сборки и исходный код.
  • Упрощение процесса сборки, так как все этапы описываются в одном 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"]

Здесь сначала собирается приложение на Go, а затем в финальный образ копируется только скомпилированный бинарник.