.dockerignore
- Docker & Kubernetes kursu
- Başlangıç
- Ders 29/82
- 4 dk
.dockerignore ile build context'i filtrelemeyi öğrenirsin.
.dockerignore
.dockerignore, context'ten dışlanacak dosyaları .gitignore benzeri desenlerle listeler. Context küçülür, build hızlanır ve yanlışlıkla gizli dosyaların (.env) image'a girmesi önlenir:
# .dockerignore
.git
node_modules
*.log
.env
Dockerfile
!README.md # ! istisna: bunu yine de dahil etnode_modules neden dışlanır?
Yerel node_modules hem çok büyüktür hem de ana makinenin işletim sistemine göre derlenmiş olabilir (ör. macOS'ta derlenen yerel modüller Linux container'da çalışmaz). Doğrusu, bağımlılıkları image içinde npm ci ile kurmaktır:
COPY package*.json ./
RUN npm ci --omit=dev
COPY . . # .dockerignore sayesinde yerel node_modules gelmezUygulama Bir .dockerignore yaz
Bir Node.js projesi için .dockerignore içeriğini yaz: .git, node_modules, .env ve tüm .log dosyalarını dışla.
Başlangıç kodu
# buraya yazÖrnek çözüm
.git
node_modules
.env
*.logBeklenen çıktı
[+] Building 1.1s => [internal] load build context => => transferring context: 18.42kB
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 .env dosyasını .dockerignore'a eklemenin asıl nedeni nedir?
- Build'i hızlandırmak
- Ortam değişkenlerini kapatmak
- Dosyayı silmek
- Parolaların image katmanlarına girmesini önlemek Doğru cevap
Açıklama: Image'ı indiren herkes katmanlardaki dosyaları okuyabilir.
2 Tüm log dosyalarını dışla.
____.log
*.log
Açıklama: * herhangi bir karakter dizisiyle eşleşir.
3 Desenleri eşleştir.
| Kavram | Anlamı |
|---|---|
.git |
Sürüm geçmişi |
*.log |
Tüm log dosyaları |
!README.md |
İstisna |
.env |
Gizli değerler |