Junior — Middle
Qanday qilib konteyner tasvirining ko'p bosqichli yig'ilishini amalga oshirasiz?
sobes.tech AI
AIdan javob
Docker'da ko'p bosqichli qurilish (multi-stage build) bir Dockerfile ichida bir nechta qurilish bosqichlarini yaratishga imkon beradi, bu esa yakuniy tasvirning hajmini kamaytirishga va kompilatsiya bosqichlarini ishga tushirish bosqichidan ajratishga yordam beradi.
Asosiy g'oya — bitta Dockerfile ichida bir nechta FROM ko'rsatmalaridan foydalanish, har bir bosqich avvalgi bosqichlarning artefaktlaridan foydalanishi mumkin.
Misol:
# Qurilish bosqichi
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
# Yakuniy tasvir bosqichi
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]
Bu yerda avval Go dasturi quriladi, so'ngra yakuniy tasvirda faqat kompilyatsiya qilingan binar nusxasi ko'chiriladi, manba fayllar va qurilish asboblari bilan birga emas.