Junior — Middle
V ktorých prípadoch sa odporúča použiť viacstupňovú zostavu Docker a ako to pomáha optimalizovať proces?
sobes.tech AI
Odpoveď od AI
Odporúča sa viacstupňová zostava Docker, keď je potrebné vytvoriť kompaktný a optimalizovaný obraz, oddelením fáz zostavovania a spustenia aplikácie. Napríklad, v prvej fáze sa aplikácia zostaví so všetkými potrebnými nástrojmi a závislosťami, a v druhej sa vytvorí minimálny obraz, do ktorého sa skopírujú iba skompilované artefakty.
Toto pomáha:
- zmenšiť veľkosť konečného obrazu tým, že sa vylúčia zbytočné súbory a nástroje na zostavovanie;
- zvýšiť bezpečnosť, pretože vo finálnom obraze nie sú nástroje na vývoj;
- urýchliť nasadenie a spustenie kontajnerov.
Príklad Dockerfile s viacstupňovou zostavou:
# Fáza zostavovania
FROM maven:3.8-jdk-11 AS builder
WORKDIR /app
COPY . .
RUN mvn clean package
# Fáza spustenia
FROM openjdk:11-jre-slim
WORKDIR /app
COPY --from=builder /app/target/myapp.jar ./
CMD ["java", "-jar", "myapp.jar"]