Docker ile Web Uygulaması Dağıtımı Rehberi: Container Mimarisi ve Dijital Strateji Trendleri
Modern container mimarisi ile web uygulaması dağıtımı rehberi. Dijital strateji ve DevOps trendleri odağında adım adım Docker kurulum, optimizasyon ve deployment kılavuzu.
Sistem Yöneticisi
Kıdemli Yazılım Mimarı
Giriş: Container Mimarisi ve Dijital Strateji Trendleri
Modern yazılım dağıtım süreçlerinde hız ve tutarlılık esastır. Geleneksel sunucu dağıtımları 'benim makinemde çalışıyordu' sorununa yol açar. Container mimarisi, uygulamanın bağımlılıklarıyla izole çalışmasını sağlar. Bulut bilişimdeki son trendler, altyapı yönetiminde mikroservis ve konteynerleştirmeyi temel dijital strateji bileşeni yapar. Bu rehber, Docker ile web uygulaması dağıtımını adım adım ele alır.
Adım 1: Uygulama İmajını Hazırlama (Dockerfile)
Dağıtımın ilk adımı, hafif ve güvenli bir Docker imajı üretmektir. Kaynak tüketimini düşürmek için multi-stage build tekniği uygulayın.
İpucu: Gereksiz paketleri imaja dahil etmeyin. Alpine veya distroless taban imajları tercih edin.
Örnek Dockerfile (Node.js/Next.js Örneği)
# 1. Aşama: Derleme
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
# 2. Aşama: Üretim İmajı
FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/public ./public
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
EXPOSE 3000
CMD ["node", "server.js"]Adım 2: Çoklu Servis Yönetimi (Docker Compose)
Web uygulamaları sıklıkla veritabanı veya önbellek servislerine ihtiyaç duyar. docker-compose.yml dosyası servisleri tek komutla koordine eder.
Örnek docker-compose.yml
version: '3.8'
services:
web:
build: .
ports:
- "80:3000"
environment:
- DATABASE_URL=postgres://user:pass@db:5432/appdb
depends_on:
- db
restart: always
db:
image: postgres:16-alpine
volumes:
- db_data:/var/lib/postgresql/data
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
POSTGRES_DB: appdb
volumes:
db_data:Adım 3: Dağıtım Öncesi Güvenlik ve Optimizasyon
Üretim ortamına geçmeden önce kritik kontrolleri uygulayın:
- Root Kullanıcısını Devre Dışı Bırakın: Container içinde
USER nodegibi imtiyazsız kullanıcı tanımlayın. - Kaynak Sınırlandırması (Limit): CPU ve bellek tüketim sınırlarını Compose veya Kubernetes manifestosunda sabitleyin.
- .dockerignore Kullanımı:
.git,node_modulesve.envdosyalarının imaja kopyalanmasını önleyin.
Adım 4: Canlı Sunucuya Dağıtım ve CI/CD Entegrasyonu
Modern trendler doğrultusunda dağıtımlar manuel yapılmaz. GitHub Actions veya GitLab CI ile otomatik test ve build akışı kurun.
- Kodu ana dala (main) gönderin.
- CI pipeline üzerinde testleri çalıştırın ve Docker imajını derleyin.
- İmajı container registry (GHCR, Docker Hub, ECR) üzerine etiketleyip (tag) yükleyin.
- Üretim sunucusunda yeni imajı çekin ve konteyneri kesintisiz (zero-downtime) yeniden başlatın.
Sonuç: Sürdürülebilir Altyapı
Container mimarisi dağıtım döngüsünü kısaltır, hata payını düşürür. Bu rehber adımlarını takip ederek web uygulamalarınızı ölçeklenebilir, güvenli ve modern dijital strateji hedeflerine uyumlu şekilde üretime taşıyabilirsiniz.