Senior
18
Что такое Multi-stage build в Docker?
Companies where asked
МВидео/эльдорадо
Answer from AI
sobes.tech AI
Multi-stage build в Docker — это техника, позволяющая создавать несколько этапов сборки в одном Dockerfile, где каждый этап может использовать свой базовый образ. Основная идея — отделить этапы сборки (например, компиляцию, установку зависимостей) от финального образа, чтобы в итоговый контейнер попадали только необходимые для запуска приложения файлы, без лишних инструментов и артефактов.
Это значительно уменьшает размер итогового образа и повышает безопасность, так как в финальном контейнере нет инструментов сборки.
Пример Dockerfile с multi-stage build:
# Этап сборки
FROM node:18 AS builder
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install
COPY . .
RUN npm run build
# Финальный этап
FROM nginx:alpine
COPY --from=builder /app/build /usr/share/nginx/html
Здесь сначала происходит сборка React-приложения, а затем только готовые статические файлы копируются в легковесный nginx-образ.