Wat is een multi-stage build in Docker?
sobes.tech AI
Antwoord van AI
Multi-stage build in Docker is een techniek waarmee je meerdere bouwfasen in één Dockerfile kunt maken, waarbij elke fase zijn eigen basisafbeelding kan gebruiken. Het belangrijkste idee is om de bouwfasen (bijvoorbeeld compilatie, afhankelijkheden installeren) te scheiden van de uiteindelijke afbeelding, zodat in de uiteindelijke container alleen de bestanden worden opgenomen die nodig zijn om de applicatie uit te voeren, zonder onnodige tools en artefacten.
Dit vermindert de grootte van de uiteindelijke afbeelding aanzienlijk en verhoogt de veiligheid, omdat er geen bouwtools in de uiteindelijke container aanwezig zijn.
Voorbeeld van een Dockerfile met multi-stage build:
# Bouwfase
FROM node:18 AS builder
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install
COPY . .
RUN npm run build
# Eindfase
FROM nginx:alpine
COPY --from=builder /app/build /usr/share/nginx/html
Hier wordt eerst de React-toepassing gebouwd, en vervolgens worden alleen de statische bestanden die klaar zijn, gekopieerd naar een lichte nginx-afbeelding.