Derleme Önbelleğinden Yararlanma
Docker derleme önbelleği mekanizmasını anlayıp etkili biçimde kullanarak Docker derleme sürelerini iyileştirin.
Derleme Önbelleğinden Yararlanma, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 2. 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, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
Önbelleğe Alma ile Daha Hızlı Derleyin
Docker görüntüleri oluşturmak zaman alabilir; özellikle de karmaşık uygulamalarda. Docker'ın derleme önbelleği, bu işlemleri önemli ölçüde hızlandıran akıllı bir özelliktir!
Önceki derlemelerdeki katmanları yeniden kullanarak çalışır; böylece Docker'ın her seferinde her şeyi baştan oluşturması gerekmez.

Katman Katman Derlemeler
Dockerfile kullanarak bir Docker görüntüsü oluşturduğunuzda Docker, her yönergeyi satır satır yürütür.
FROM,RUNveyaCOPYgibi her yönerge, görüntünüzde yeni bir "katman" oluşturur.- Bu katmanlar üst üste eklenerek son görüntüyü oluşturur.
Docker'ın Önbellek Denetimi
Docker, bir yönergeyi yürütmeden önce aynı katmanı daha önce oluşturup oluşturmadığını denetler. Şunları karşılaştırır:
- Yönergenin kendisi (ör.
RUN apt update). - Belirli yönergeler için "bağlam" (ör.
COPYile kopyalanan dosyalar).
Eşleşen bir katman bulunursa Docker, yönergeyi yeniden çalıştırmak yerine bu katmanı önbellekten yeniden kullanır.
Önbelleği Geçersiz Kılma
Önbellek harikadır ancak her zaman kullanılmaz. Docker bir yönergede veya bağlamında herhangi bir değişiklik algılarsa bu katmanın ve sonraki tüm katmanların önbelleğini geçersiz kılar.
Bu, Docker'ın o noktadan itibaren yeniden oluşturma yapacağı ve altındaki önbelleğe alınmış katmanları yok sayacağı anlamına gelir.
Akıllı Yönerge Sıralaması
Önbellek isabetlerini en üst düzeye çıkarmak için Dockerfile yönergelerini değişme olasılığı en düşük olandan en yüksek olana doğru sıralayın.
- Sabit bağımlılıklar önce: Seyrek değişen sistem paketlerini veya uygulama bağımlılıklarını yükleyin.
- Uygulama kodu en sonda: Sık değişen uygulamanızın kaynak kodunu mümkün olduğunca geç kopyalayın.
Önbellek İsabetleri için Sıralama
Bir örneğe bakalım. Genellikle daha seyrek değişen RUN pip install komutunu, her kod güncellemesinde değişen COPY . . komutundan önce yerleştirerek Docker'ın bağımlılık katmanını yeniden kullanmasını sağlayabilirsiniz.
requirements.txt dosyasında flask ve gunicorn bulunduğunu, app.py dosyasının da ana uygulamanız olduğunu düşünün.
Dockerfile:
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY app.py .
CMD ["python", "app.py"]Yalnızca app.py değişirse Docker sadece son COPY ve CMD katmanlarını yeniden oluşturur ve zamandan tasarruf sağlar!
.dockerignore ile Seçmeli Kopyalama
COPY . . kullandığınızda Docker, derleme bağlamındaki her dosyada değişiklik olup olmadığını denetler. Küçük ve ilgisiz dosyalar (örneğin .git klasörleri veya yerel test verileri) bile önbelleği geçersiz kılabilir.
Gereksiz dosya ve dizinleri derleme bağlamınızdan hariç tutmak için bir .dockerignore dosyası kullanın. Böylece bunların önbellek geçersiz kılmalarını tetiklemesi önlenir.
.dockerignore İş Başında
Derleme bağlamınızın kök dizinine (Dockerfile dosyanızın yanına) .dockerignore adlı bir dosya yerleştirin.
.dockerignore örneği:
.git
.venv
__pycache__
*.log
node_modulesArtık COPY . . kullandığınızda Docker bu dosyaları yok sayar ve daha güvenilir önbellek isabetleri sağlar!
Önbellek Ne Zaman Atlanmalı
Bazen önbelleği tamamen yok sayarak her şeyin güncel biçimde oluşturulmasını istersiniz. Bu, hata ayıklama veya bağımlılıkların kesinlikle en yeni sürümlerine sahip olduğunuzdan emin olma açısından yararlı olabilir.
Derleme komutunuza --no-cache seçeneğini ekleyerek Docker'ı önbelleği kullanmadan yeniden oluşturmaya zorlayabilirsiniz:
docker build --no-cache -t my-app:latest .Önbellek İyileştirme Denetimi
Bir Node.js uygulaması için Docker görüntüsü oluşturuyorsunuz. Dockerfile dosyanız şu anda şöyle görünüyor:
FROM node:16-alpine
WORKDIR /app
COPY . .
RUN npm install
CMD ["npm", "start"]Derleme önbelleğe almasını en iyi şekilde iyileştirmek için bu Dockerfile üzerinde hangi değişiklik yapılmalıdır?
Özet: Önbellekte Ustalaşın!
Harika iş! Daha hızlı görüntü derlemeleri için Docker'ın derleme önbelleğinden nasıl yararlanacağınızı öğrendiniz.
- Docker, görüntüleri katman katman oluşturur ve mümkün olduğunda önbelleğe alınmış katmanları yeniden kullanır.
- Bir yönergede veya bağlamında yapılan değişiklikler, o noktadan itibaren önbelleği geçersiz kılar.
- Yönergeleri değişme olasılığı en düşük olandan en yüksek olana doğru sıralayarak iyileştirme yapın.
- İlgisiz dosyaları derleme bağlamından hariç tutmak için
.dockerignorekullanın. - Gerektiğinde yeni bir derlemeyi zorlamak için
--no-cachekullanın.
Verimli önbelleğe alma, daha hızlı geliştirme döngüleri ve daha çevik dağıtımlar sağlar!
Sıkça Sorulan Sorular
“Derleme Önbelleğinden Yararlanma” dersi ücretsiz mi?
Evet — “Derleme Önbelleğinden Yararlanma” 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 DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
“Derleme Önbelleğinden Yararlanma” dersinde ne öğreneceğim?
Docker derleme önbelleği mekanizmasını anlayıp etkili biçimde kullanarak Docker derleme sürelerini iyileştirin. DevOps Bootcamp 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.
DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, 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 2. dersidir.
“Derleme Önbelleğinden Yararlanma” 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 DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?
Evet. Her DevOps Bootcamp 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
- Verimlilik için Çok Aşamalı Derlemeler
- Derleme Önbelleğinden Yararlanma
- Dockerfile Güvenliği için En İyi Uygulamalar
- Slim ve Distroless Tabanlarla İmaj Boyutunu Küçültme