Sobes.tech
Intern

Docker'da Çok Aşamalı Derleme nedir ve neden gereklidir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Docker'da çok aşamalı derleme, tek bir Dockerfile'da birden fazla derleme aşaması kullanan bir Docker görüntüsü oluşturma yöntemidir. İlk aşamalarda uygulama derlenir ve hazırlanır, son aşamalarda ise gereksiz araçlar ve kaynak kodları olmadan minimal bir son görüntü oluşturulur.

Neden gereklidir:

  • Son görüntünün boyutunu küçültmek, çünkü yalnızca çalıştırmak için gerekli dosyalar alınır.
  • Güvenliği artırmak, çünkü derleme araçları ve kaynak kodları görüntüye dahil edilmez.
  • Derleme sürecini basitleştirmek, çünkü tüm aşamalar tek bir Dockerfile'da tanımlanır.

Örnek:

FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp

FROM alpine:latest
COPY --from=builder /app/myapp /usr/local/bin/myapp
CMD ["myapp"]

Burada, önce Go ile uygulama derlenir, ardından ise yalnızca derlenmiş ikili dosya son görüntüye kopyalanır.