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.