Sobes.tech
Junior — Middle

консепти сохтани чанд марҳилаи тасвири Docker-ро шарҳ диҳед ва чаро истифода мешавад.

sobes.tech AI

Ҷавоб аз AI

Бисёртақли сохтани тасвирҳои Docker (multi-stage build) имкон медиҳад, ки дар як Dockerfile чанд марҳилаи сохтани истифода шавад. Ин кӯмак мекунад, ки тасвирҳои кӯтоҳ ва оптималӣ созанд, бо ҷудо кардани марҳилаҳои сохтани аз марҳилаҳои иҷроиш.

Дар марҳилаи аввал, метавон тасвир бо воситаҳо барои компилятсия ва сохтани барнома истифода бурд, ва дар марҳилаҳои баъдӣ — танҳо тасвир минималӣ бо файлҳои зарурӣ барои иҷро.

Фоидаҳо:

  • Андозаи ниҳоии тасвир назар ба пештар хеле кам мешавад.
  • Аз тасвир хориҷ кардани вобастагиҳо ва воситаҳои нолозим.
  • Тазмини нигоҳдорӣ ва навсозии Dockerfile осонтар мешавад.

Масалан:

# Марҳилаи сохтани
FROM openjdk:11-jdk AS build
WORKDIR /app
COPY . .
RUN ./gradlew build

# Марҳилаи иҷро
FROM openjdk:11-jre
WORKDIR /app
COPY --from=build /app/build/libs/myapp.jar ./
CMD ["java", "-jar", "myapp.jar"]