Junior — Middle
Ինչպե՞ս իրականացնել բազմաբնակարան կառուցում կոնտեյներային պատկերի համար։
sobes.tech AI
Պատասխան AI-ից
Մուլտի-շերտային կառուցում (multi-stage build) Docker-ում թույլ է տալիս ստեղծել մի քանի շերտեր կառուցման մեկ Dockerfile-ում, ինչը օգնում է նվազեցնել վերջնական պատկերի չափը և տարբերակել կոմպիլացիայի շերտերը գործարկման շերտից:
Հիմնական գաղափարը՝ օգտագործել մի քանի FROM հրահանգներ մեկ Dockerfile-ում, որտեղ յուրաքանչյուր շերտ կարող է օգտագործել նախորդ շերտերի արհեստականները:
Օրինակ՝
# Կառուցման շերտ
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
# Վերջնական պատկերի շերտ
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]
Այստեղ նախ կառուցվում է Go հավելվածը, իսկ հետո վերջնական պատկերի մեջ միայն պատճենվում է կոմպիլյատը, առանց աղբյուրային ֆայլերի և կառուցման գործիքների։