Multi-stage builds usan múltiples instrucciones FROM en un solo Dockerfile. Cada etapa puede usar una base diferente, copiando solo los artefactos necesarios a la etapa final.
Ejemplo Node.js
FROM node:20 AS build
WORKDIR /app
COPY package*.json .
RUN npm ci
COPY . .
RUN npm run build
FROM node:20-slim
COPY --from=build /app/dist ./dist
CMD ["node", "dist/index.js"]
Beneficios
Reduce la imagen final de ~1GB a ~150MB. Elimina herramientas de compilación, dependencias de desarrollo y archivos temporales.
Etapas con nombres
Nombra las etapas (AS nombre) para referencia clara. Puedes tener etapas para: instalación, compilación, tests, y producción.
Estrategias avanzadas
Etapas paralelas para compilación de frontend y backend. Usa bases -slim o -alpine para la etapa final. Distroless para máxima seguridad.

