İçeriğe atla
Bizi takip edin:
ÖZEL YAZILIM VE ENDÜSTRİYEL ENTEGRASYON
KURUMSAL MİMARİ KOCAELİ & GEBZE SANAYİ BÖLGESİ

Docker Multi-Stage Build ile Hafif ve Güvenli İmajlar

HEDEF SAHA & SEKTÖR Talaşlı İmalat, Otomotiv & Makine Sanayi
MİMARİ & STANDART Özel İmalat ERP · BOM · Saha WMS
TEMEL İŞ KAZANIMI Süreç Hızı ve Sıfır Manuel Hata
Yönetici Özeti: Docker konteynerleştirmede multi-stage build mimarisi: İmaj boyutunu %80 küçültme, alpine/distroless kullanımı ve non-root güvenlik yapılandırma rehberi.

Hızlı Özet (TL;DR)

Geleneksel Dockerfile yapılarında derleyiciler (SDK), kaynak kodlar ve geliştirme araçları son imajın içine gömülerek 1 GB’ı aşan hantal ve güvenlik açıklarıyla dolu imajlar üretilir. Docker Multi-Stage Build mimarisi, derleme ortamı ile çalışma zamanı ortamını birbirinden tamamen ayırır. Uygulama ilk aşamada derlenir, nihai aşamada ise yalnızca derlenmiş binary/çalıştırılabilir dosya ultra hafif bir tabana (Alpine veya Distroless) kopyalanarak imaj boyutu 30-50 MB seviyesine indirilir.

Geleneksel Build ve Multi-Stage Build Karşılaştırması

İki konteynerleştirme yaklaşımı arasındaki farklar:

ÖzellikStandart Tek Aşamalı DockerfileMulti-Stage Build Mimarisi
Nihai İmaj Boyutu800 MB – 1.5 GB30 MB – 80 MB (%95 tasarruf)
İçerilen Paketlergcc, git, npm, pip ve geliştirme araçlarıYalnızca derlenmiş çıktı ve runtime kütüphaneleri
Saldırı Yüzeyi (CVE)Yüzlerce potansiyel işletim sistemi zafiyetiMinimum paket içeriği ile sıfıra yakın zafiyet
Dağıtım (CI/CD) HızıRegistry’den indirme dakikalar sürerBirkaç saniye içinde sunucuya çekilir ve başlar
Konteyner KullanıcısıGenellikle varsayılan root yetkisiAyrıcalıksız non-root kullanıcı yapılandırması

Örnek Multi-Stage Node.js Dockerfile Mimarisi

Aşağıdaki Dockerfile, üretim ortamı için optimize edilmiş çift aşamalı yapıyı göstermektedir:

# 1. Aşama: Derleme (Builder)
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

# 2. Aşama: Çalışma Zamanı (Production Runner)
FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production

# Güvenlik: Non-root kullanıcı tanımlama
USER node

# Yalnızca derlenmiş dosyaları ve üretim modüllerini taşı
COPY --from=builder --chown=node:node /app/package*.json ./
COPY --from=builder --chown=node:node /app/dist ./dist
RUN npm ci --only=production

EXPOSE 3000
CMD ["node", "dist/index.js"]

Konteyner Güvenliği İçin 3 Kritik Kontrol

  1. Root Olarak Çalıştırmayın: Konteyner içindeki işlem root yetkisine sahipse, konteyner kaçış zafiyetlerinde saldırgan ana sunucuya tam erişim sağlayabilir. USER direktifi ile yetkisiz kullanıcı atanmalıdır.
  2. Hassas Dosyaları (.dockerignore): .env, .git ve gizli anahtarlar asla imaja dahil edilmemelidir.
  3. Distroless Tabanlar: Kabuk (Bash/Sh) dahi içermeyen Google Distroless imajları tersine kabuk (reverse shell) saldırılarını tamamen engeller.

Yüksek performanslı, güvenli ve mikroservis uyumlu kurumsal yazılım altyapıları için Özel Yazılım Geliştirme ve kurumsal sunucu çözümlerimiz için Ortak Dosya Sunucusu ve Yedekleme sayfalarımızı ziyaret edebilirsiniz.

BİLGİ BANKASI & VAKALAR

İlginizi Çekebilecek Diğer Rehberler

Sanayi dijitalleşmesi, siber güvenlik ve kurumsal yazılım alanında kapsamlı analizler.

Uygulama Hizmeti

Web Sayfası Tasarım

Bu makaledeki metodolojinin anahtar teslim proje adımları ve teknik teslim detayları.

Hizmeti inceleyin

İşinize uygun çözümü birlikte çıkaralım

İhtiyacınızı dinleyelim, kapsamı ve bütçeyi netleştirelim. İlk görüşme ücretsizdir.

Teklif Formu

Size buradan dönüş yapacağız; WhatsApp numaranız olması işimizi kolaylaştırır.

Talebiniz Alındı!

Mesajınız [email protected] adresine başarıyla iletildi.
En kısa sürede sizinle iletişime geçeceğiz.