Docker önbellek geçersiz kılmasında nasıl hata ayıklanır?


15

Docker'ın harika bir önbelleği var, ancak "docker build" çıktısında gördüğüm tek şey:

---> Using cache

veya komutun çıktısı (önbellek kullanmadığı anlamına gelir).

Dockerfile (bir COPY) dosyamdaki bir adımdan sonra önbelleği açıkça kullanmıyor. Ama kopyaladığı klasörde hiçbir şeyin değişmediğinden oldukça eminim. (Bu bizim uygulamamız ve örneğin üst üste iki kez dağıttığımda bile önbelleksiz durumla karşılaşıyorum.)

Docker'ın bana neyin değiştiğini düşündüğünü söylemesini sağlamanın bir yolu var mı?

Docker'ın bunun için zaman damgalarını kontrol ettiğini biliyordum, ancak bu Docker 1.8'de düzeltildi ve burada Docker 1.9.x'deyim.


Lütfen gönderinDockerfile
Joel E Salas

1
@JoelESalas: Talebinizi anlamıyorum. FROM ubuntu:14.04 MAINTAINER me COPY /app/ /app/Bunu gösterecek kadar basit bir şey . Ve tüm kaynak kodumu ve altyapımı göndermeyeceğim.
Timmay

1
Ayrıca, Dockerfile'a bakmak yardımcı olsa bile, soru bu tür sorunları nasıl teşhis edeceğim . İstemediğim başkası benim yapılandırma bakmak ve bana cevap anlatmak için. Sorunu çözmenize yardımcı olacak araçların neler olduğunu bilmek istiyorum.
Timmay

Bu dizinde hiçbir şeyin değişmediğinden emin misiniz?
Joel E Salas

Yanıtlar:


4

İle ikili aramayı kullan .dockerignore .

Dosyalarınızın yarısını ekleyin .dockerignoreve kapsayıcıyı oluşturun. COPYAdım için önbelleği kullanıyorsa, değiştirilen dosyaların yok saydığınız kümede olduğunu, aksi takdirde diğer yarısında olduğunu bilirsiniz. Bu sınamayı, yalnızca bir dosya / klasör olana kadar, değişiklik içeren dosya kümesiyle tekrarlayın.

(Sevgili tembel web: Docker'ı daha az acı verici hale getirmek için genişletmenin bir yolunu bulun!)


2
Yerel olarak bir hata ayıklamak için iyi bir yaklaşım gibi görünüyor, teşekkürler. Benim durumumda, şu anda bir CI ortamında Docker önbelleğinde hata ayıklamaya çalışıyorum ve Docker'ı daha ayrıntılı bir şekilde oluşturmanın herhangi bir yolunu bulamadığım için biraz yanıldım = /
elias
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.