Junior — Middle
Erklären Sie das Konzept des Multi-Stage-Builds in Docker und seine Vorteile.
sobes.tech KI
Antwort von AI
Der Multi-Stage-Build in Docker ermöglicht die Verwendung mehrerer Build-Phasen in einer einzigen Dockerfile. Das bedeutet, dass die Anwendung zunächst in einem Container mit den benötigten Tools und Abhängigkeiten gebaut werden kann, und dann nur die notwendigen Artefakte in das finale, minimale und leichte Image kopiert werden.
Vorteile:
- Verringerung der Größe des finalen Images, da die Build-Tools und temporären Dateien nicht enthalten sind.
- Erhöhte Sicherheit, da im finalen Image keine unnötigen Komponenten enthalten sind.
- Einfachere Wartung und bessere Lesbarkeit der Dockerfile, da alle Schritte an einem Ort beschrieben sind.
Beispiel für Go:
# Build-Phase
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
# Finale Image
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]