Sobes.tech
Junior — Middle

In welke gevallen wordt het aanbevolen om een multi-stage Docker-build te gebruiken en hoe helpt dit bij het optimaliseren van het proces?

sobes.tech AI

Antwoord van AI

Aanbevolen wordt om een multi-stage Docker-build te gebruiken wanneer je een compacte en geoptimaliseerde afbeelding wilt maken, door de bouw- en uitvoeringsfasen van de applicatie te scheiden. Bijvoorbeeld, in de eerste fase wordt de applicatie gebouwd met alle benodigde tools en afhankelijkheden, en in de tweede wordt een minimale afbeelding gemaakt waarin alleen de gecompileerde artefacten worden gekopieerd.

Dit helpt om:

  • de grootte van de uiteindelijke afbeelding te verkleinen door onnodige bestanden en bouwtools uit te sluiten;
  • de veiligheid te verhogen, omdat er geen ontwikkeltools in de uiteindelijke afbeelding zitten;
  • de deployment en het starten van containers te versnellen.

Voorbeeld van een Dockerfile met multi-stage build:

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

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