Sobes.tech
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 հավելվածը, իսկ հետո վերջնական պատկերի մեջ միայն պատճենվում է կոմպիլյատը, առանց աղբյուրային ֆայլերի և կառուցման գործիքների։