Назад к вопросам
Middle+
1
Что такое multi-stage build в Docker? Зачем нужно?
Компании, где спрашивали
Астрал-Софт
Ответ от нейросети
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"]