Çok Aşamalı Derlemeler ve Daha Küçük İmajlar
Derleme araçlarını son çalışma ortamından ayıran çok aşamalı Dockerfile'lar sayesinde yalın üretim imajları yayımlamayı, imaj boyutunu ve saldırı yüzeyini önemli ölçüde azaltmayı öğrenin.
Çok Aşamalı Derlemeler ve Daha Küçük İmajlar, CoddyKit'te ücretsiz bir Docker & DevOps Fundamentals dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Docker & DevOps Fundamentals öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Docker & DevOps Fundamentals kursu toplamda 4 dersten oluşur.
İmaj Boyutu Neden Önemlidir
Büyük imajların oluşturulması, gönderilmesi ve çekilmesi yavaştır; ayrıca saldırı yüzeyleri daha geniştir. İyi bir mühendislik hedefi, uygulamanızı çalıştırmaya devam eden en küçük imajı göndermektir.
Şişkinlik Sorunu
Bir uygulama oluşturmak çoğu zaman derleyiciler, geliştirme bağımlılıkları ve derleme araçları gerektirir. Bunlar son imaja dâhil olursa imajın boyutu büyük ölçüde artar; oysa çalışan uygulamanın bunların hiçbirine ihtiyacı yoktur.
Çok Aşamalı Derleme Nedir
Çok aşamalı derleme, tek bir Dockerfile içinde birden fazla FROM ifadesi kullanır. İlk aşamalarda uygulama derlenir; son aşama yalnızca tamamlanmış yapıtları kopyalayarak derleme araçlarını dışarıda bırakır.
Aşama Adlandırma
Daha sonraki aşamaların ona başvurabilmesi için AS ile bir aşamaya ad verin.
FROM node:20 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ciİlk Aşamada Derleme
Derleme aşaması uygulamanızı derler veya paketler. Bu aşamada tüm geliştirme bağımlılıkları ve araçları kullanılabilir.
COPY . .
RUN npm run buildYalın Bir Son Aşama
Son aşamayı en küçük temel imajdan başlatın, ardından uygulamanın çalışması için gerekenleri COPY --from kullanarak kopyalayın.
FROM node:20-slim
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modulesTam Çok Aşamalı Dockerfile
Aşamaların birleştirilmesi, derlenmiş uygulamayı içeren ancak derleme araç zincirinin hiçbirini içermeyen küçük bir son imaj oluşturur.
FROM node:20 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:20-slim
WORKDIR /app
COPY --from=builder /app/dist ./dist
CMD ['node', 'dist/main.js']Küçük Bir Temel İmaj Seçme
Temel imaj çoğu zaman en büyük etkendir. Slim ve Alpine çeşitleri imajları önemli ölçüde küçültür:
node:20~ büyüknode:20-slim~ çok daha küçüknode:20-alpine~ en küçük, en az kitaplık
Yalnızca Üretim Bağımlılıkları
Çalışma zamanı imajında geliştirme bağımlılıklarını atlayın. Üretim seçeneğiyle yükleme yapmak, sınama ve derleme paketlerini dışarıda bırakır.
RUN npm ci --omit=dev.dockerignore Kullanma
.dockerignore dosyası gereksiz içerikleri derleme bağlamının dışında tutar, derlemeleri hızlandırır ve gizli bilgilerin veya çok büyük klasörlerin yanlışlıkla kopyalanmasını önler.
node_modules
.git
.env
Dockerfile
*.logSonucu Ölçme
İşinizi imaj boyutlarını denetleyerek doğrulayın. İyi oluşturulmuş çok aşamalı bir imaj, tek aşamalı ve özensiz bir imajın yalnızca küçük bir bölümü kadar olabilir.
docker images myappHızlı Kontrol
Çok aşamalı derleme bilginizi sınayın.
Özet
Yalın Docker imajları göndermeyi öğrendiniz:
- Çok aşamalı derlemeler tek bir Dockerfile içinde birden çok
FROMaşaması kullanır. - İlk aşamalardan birinde derleyin, ardından yalnızca yapıtları
COPY --fromile yalın son aşamaya kopyalayın. - Küçük temel imajlar seçin (slim/Alpine) ve yalnızca üretim bağımlılıklarını yükleyin.
- Derleme bağlamını küçültmek için
.dockerignorekullanın.
Daha küçük imajlar daha hızlı oluşturulur, daha çabuk dağıtılır ve daha güvenlidir.
Sıkça Sorulan Sorular
“Çok Aşamalı Derlemeler ve Daha Küçük İmajlar” dersi ücretsiz mi?
Evet — “Çok Aşamalı Derlemeler ve Daha Küçük İmajlar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Docker & DevOps Fundamentals kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Docker & DevOps Fundamentals kursu toplamda 4 dersten oluşur.
“Çok Aşamalı Derlemeler ve Daha Küçük İmajlar” dersinde ne öğreneceğim?
Derleme araçlarını son çalışma ortamından ayıran çok aşamalı Dockerfile'lar sayesinde yalın üretim imajları yayımlamayı, imaj boyutunu ve saldırı yüzeyini önemli ölçüde azaltmayı öğrenin. Docker & DevOps Fundamentals ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Docker & DevOps Fundamentals öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Docker & DevOps Fundamentals, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Çok Aşamalı Derlemeler ve Daha Küçük İmajlar” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Docker & DevOps Fundamentals dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Docker & DevOps Fundamentals dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Dockerfile’ları Anlama
- Özel Docker İmajları Oluşturma
- İmaj Katmanları ve İyileştirme
- Çok Aşamalı Derlemeler ve Daha Küçük İmajlar