Sobes.tech
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"]