Dockerfile En İyi Uygulamaları: Üretime Hazır Konteynerler
İyi yazılmış bir Dockerfile, verimli, güvenli ve sürdürülebilir konteynerler oluşturmanın temelidir. Bu rehberde, sektör en iyi uygulamalarını inceleyeceğiz.
1. Resmi ve Minimal Base Image Kullanın
# İyi
FROM node:18-alpine
# Kaçının
FROM ubuntu:latest
Alpine tabanlı imajlar daha küçük ve güvenlidir.
2. Multi-stage Build Kullanın
# Build aşaması
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
# Production aşaması
FROM node:18-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
CMD ["node", "dist/index.js"]
3. Katman Önbelleğini Optimize Edin
Sık değişen dosyaları sona koyun:
COPY package*.json ./
RUN npm ci
COPY . .
4. Gereksiz Dosyaları Hariç Tutun
.dockerignore dosyası kullanın:
node_modules
.git
*.md
.env
tests/
5. Root Olmayan Kullanıcı Kullanın
RUN addgroup -g 1001 -S nodejs
RUN adduser -S nextjs -u 1001
USER nextjs
6. Tek RUN Komutunda Birleştirin
RUN apt-get update && \
apt-get install -y --no-install-recommends \
curl \
git && \
rm -rf /var/lib/apt/lists/*
7. HEALTHCHECK Ekleyin
HEALTHCHECK --interval=30s --timeout=3s \
CMD curl -f http://localhost:3000/health || exit 1
8. Belirli Tag Kullanın
# İyi
FROM node:18.17.0-alpine3.18
# Kaçının
FROM node:latest
Sonuç
Bu en iyi uygulamaları takip ederek, daha küçük, daha güvenli ve daha sürdürülebilir Docker imajları oluşturabilirsiniz.