Sobes.tech
Junior — Middle

Leg uit wat het concept van multi-stage builds in Docker is en wat de voordelen ervan zijn.

sobes.tech AI

Antwoord van AI

Multi-stage build in Docker maakt het mogelijk om meerdere bouwfasen te gebruiken in één Dockerfile. Dit betekent dat je eerst de applicatie kunt bouwen in een container met de benodigde tools en afhankelijkheden, en vervolgens alleen de benodigde artefacten naar het uiteindelijke, minimale en lichte beeld kunt kopiëren.

Voordelen:

  • Vermindering van de grootte van het uiteindelijke beeld, omdat de bouwtools en tijdelijke bestanden niet worden opgenomen.
  • Verbeterde beveiliging, omdat het uiteindelijke beeld geen onnodige componenten bevat.
  • Gemakkelijk onderhoud en leesbaarheid van de Dockerfile, omdat alle stappen op één plek worden beschreven.

Voorbeeld voor Go:

# Bouwfase
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp

# Uiteindelijke beeld
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]