Paketleme ve Dağıtım: Docker Multi-Stage Build
Docker multi-stage build, uygulamaların daha küçük ve optimize edilmiş imajlar halinde dağıtılmasını sağlar. Bu yöntem, gereksiz dosyaların ve bağımlılıkların imajdan çıkartılmasına olanak tanır.
Avantajları
- Küçük imaj boyutları
- Daha hızlı dağıtım
- Azaltılmış saldırı yüzeyi
Nasıl Kullanılır?
1. **Birden Fazla Aşama Tanımlayın**: Dockerfile\'da birden fazla \"FROM\" ifadesi kullanarak farklı aşamalar oluşturun.
2. **Gerekli Dosyaları Kopyalayın**: Sadece gerekli dosyaları son aşamaya kopyalayarak, gereksiz dosyaları imajdan çıkarın.
3. **Geliştirme Araçlarını Hariç Tutun**: Sadece üretim için gerekli olan bağımlılıkları son imaja dahil edin.
Örnek Dockerfile
```plaintext
# Aşama 1: Build aşaması
FROM node:14 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
# Aşama 2: Production aşaması
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
```
Bu örnekte, ilk aşamada uygulama derlenir ve ikinci aşamada yalnızca derlenen dosyalar alınarak küçük bir nginx imajı oluşturulur.
Docker multi-stage build ile daha verimli ve güvenli dağıtım süreci sağlanabilir.