Sobes.tech
Back to questions
Middle+
2

Что такое multi-stage build в Docker? Зачем нужно?

Companies where asked
Астрал-Софт

Answer from AI

sobes.tech AI

Multi-stage build в Docker позволяет использовать несколько этапов сборки в одном 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"]