Sobes.tech
Middle+

Was ist Multi-Stage-Build in Docker? Wozu ist es notwendig?

sobes.tech KI

Antwort von AI

Der Multi-Stage-Build in Docker ermöglicht die Verwendung mehrerer Build-Phasen in einer einzigen Dockerfile. Dies hilft, kompakte und optimierte Images zu erstellen, indem die Build- und die Endlaufphase der Anwendung getrennt werden.

Zum Beispiel kann in der ersten Phase die Anwendung mit den benötigten Tools und Abhängigkeiten gebaut werden, und in der zweiten nur die kompilierten Artefakte in ein minimales Image kopiert werden, ohne unnötige Dateien und Build-Tools.

Vorteile:

  • Verringerung der Größe des endgültigen Images
  • Erhöhte Sicherheit (weniger Komponenten im finalen Container)
  • Klarheit und einfache Verwaltung des Dockerfile

Beispiel:

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

# Endgültiges Image
FROM alpine:latest
COPY --from=builder /app/myapp /usr/local/bin/myapp
CMD ["myapp"]