Что такое Multi-Stage Build?
Это способ использовать несколько инструкций
FROM в Dockerfile, чтобы собирать чистые, компактные и готовые к продакшену образы. Позволяет разделить этапы сборки и выполнения .Зачем использовать Multi-Stage Builds?
- Чтобы не тащить в продакшен инструменты сборки и исходный код.
- Существенно уменьшить размер образа.
- Повысить безопасность и производительность.
Ниже пример Multi-Stage Dockerfile для Node.js
# Stage 1: Build
FROM node:18 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
# Stage 2: Serve
FROM nginx:alpine
COPY --from=builder /app/build /usr/share/nginx/html
EXPOSE 80
Пояснение:
- Первый этап: установка зависимостей и сборка приложения.
- Второй этап: используется лёгкий образ NGINX для раздачи собранных статических файлов.
В финальный образ попадает только результат сборки.
Плюсы:
- Меньший размер итогового образа.
- Чёткое разделение ответственности (build vs runtime).
- Работает с любым языком и фреймворком.
👉 @PythonPortal
