Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ Docker-ში მრავალსაფეხურიანი სურათების მშენებლობის კონცეფცია და რა სარგებელს მოაქვს მას?

sobes.tech AI

პასუხი AI-სგან

Docker-ში მრავალსაფეხურიანი (multi-stage build) საშუალებას გაძლევთ შექმნათ სურათები რამდენიმე ნაბიჯით, გამოყენებით შუამავლობით სურათებს მშენებლობისთვის და შემდეგ მხოლოდ საჭირო არტეფაქტების კოპირებით საბოლოო სურათში.

უპირატესობები:

  • საბოლოო სურათის ზომის შემცირება — მხოლოდ ის, რაც საჭიროა გაშვებისთვის, მშენებლობის ინსტრუმენტებისა და დროებითი ფაილების გარეშე.
  • უსაფრთხოების გაზრდა — ნაკლები კომპონენტები, ნაკლები სუსტი წერტილები.
  • სარგებელი და სისუფთავე — მშენებლობის და გაშვების ეტაპების განყოფილება შესაძლებელია, მრავალი Dockerfile-ის შექმნის გარეშე.

მაგალითი:

# მშენებლობის ეტაპი
FROM maven:3.8-jdk-11 AS build
WORKDIR /app
COPY pom.xml .
COPY src ./src
RUN mvn package

# საბოლოო სურათი
FROM openjdk:11-jre-slim
WORKDIR /app
COPY --from=build /app/target/myapp.jar ./myapp.jar
CMD ["java", "-jar", "myapp.jar"]

აქ პირველად მშენებლობა ხორციელდება Maven-ის გამოყენებით, შემდეგ კი მხოლოდ კომპილირებული jar-ი გადადის საბოლოო სურათში, Maven-ის და წყაროს ფაილების გარეშე.

შეგიძლიათ ახსნათ Docker-ში მრავალსაფეხურიანი… - sobes.tech