Sobes.tech
Junior — Middle

In welchen Fällen wird der Einsatz eines mehrstufigen Docker-Builds empfohlen und wie trägt dies zur Optimierung des Prozesses bei?

sobes.tech KI

Antwort von AI

Empfehlenswert ist der Multi-Stage-Build von Docker, wenn eine kompakte und optimierte Abbildung erstellt werden soll, bei der die Build- und Laufphasen der Anwendung getrennt werden. Zum Beispiel wird in der ersten Phase die Anwendung mit allen notwendigen Tools und Abhängigkeiten gebaut, und in der zweiten wird ein minimales Image erstellt, in das nur die kompilierten Artefakte kopiert werden.

Dies hilft:

  • die Größe des endgültigen Images zu reduzieren, indem unnötige Dateien und Build-Tools ausgeschlossen werden;
  • die Sicherheit zu erhöhen, da im finalen Image keine Entwicklungstools enthalten sind;
  • die Bereitstellung und den Start von Containern zu beschleunigen.

Beispiel für ein Dockerfile mit Multi-Stage-Build:

# Build-Phase
FROM maven:3.8-jdk-11 AS builder
WORKDIR /app
COPY . .
RUN mvn clean package

# Laufphase
FROM openjdk:11-jre-slim
WORKDIR /app
COPY --from=builder /app/target/myapp.jar ./
CMD ["java", "-jar", "myapp.jar"]