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"]