Build context
- Docker & Kubernetes kursu
- Başlangıç
- Ders 27/82
- 4 dk
Build context'in ne olduğunu ve nasıl kullanıldığını öğrenirsin.
Build context
docker build başlarken context klasörünün tamamını daemon'a gönderir. Context'in dışındaki dosyalar (COPY ../gizli.txt . gibi) kopyalanamaz. Büyük bir context (ör. node_modules, veri dosyaları) build'i yavaşlatır:
$ docker build -t web .
[+] Building 12.4s
=> [internal] load build context
=> => transferring context: 845.21MB # çok büyük!Context'i seçmek
Context ile Dockerfile'ın yeri ayrı verilebilir. Bir monorepoda kök klasörü context yapıp alt klasördeki Dockerfile'ı kullanmak yaygındır:
# proje/
# paylasilan/
# servisler/api/Dockerfile
cd proje
docker build -f servisler/api/Dockerfile -t api . # context: proje/Context bir Git adresi de olabilir: docker build https://github.com/ali/api.git#main.
Uygulama Monorepo build'i
proje klasörünün içindesin. servisler/api/Dockerfile dosyasını kullanarak, context'i mevcut klasör olan ve image adı api:dev olan build komutunu yaz.
Başlangıç kodu
# buraya yazBeklenen çıktı
[+] Building 6.3s (10/10) FINISHED => naming to docker.io/library/api:dev done
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 COPY ../config.yml . neden başarısız olur?
- COPY tek dosya almaz
- Dosya build context'inin dışında Doğru cevap
- YAML desteklenmez
- Nokta hatalı
Açıklama: Daemon yalnızca kendisine gönderilen context'i görür.
2 Context'i üst klasör yap.
docker build -f Dockerfile -t api ____
docker build -f Dockerfile -t api ..
Açıklama: .. bir üst klasördür.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
context |
Daemon'a gönderilen klasör |
-f |
Dockerfile yeri |
transferring context |
Gönderilen boyut |
Git adresi |
Uzak context |