Sobes.tech
Middle+

Docker'da çok aşamalı derleme nedir? Neden gereklidir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Docker'da çok aşamalı yapı, tek bir Dockerfile'da birden fazla derleme aşaması kullanmanıza olanak tanır. Bu, uygulamanın derleme ve son çalıştırma aşamalarını ayırarak kompakt ve optimize edilmiş görüntüler oluşturmanıza yardımcı olur.

Örneğin, ilk aşamada uygulamayı gerekli araçlar ve bağımlılıklarla derleyebilir, ikinci aşamada ise yalnızca derlenmiş artefaktları, gereksiz dosya ve derleme araçları olmadan minimal bir görüntüye kopyalayabilirsiniz.

Avantajlar:

  • Nihai görüntü boyutunun küçülmesi
  • Güvenliğin artması (son konteynerde daha az bileşen)
  • Dockerfile'ın temizliği ve yönetiminin kolaylığı

Örnek:

# Derleme aşaması
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp

# Nihai görüntü
FROM alpine:latest
COPY --from=builder /app/myapp /usr/local/bin/myapp
CMD ["myapp"]