Özet - Dockerfile
- Docker & Kubernetes kursu
- Başlangıç
- Ders 24/82
- 5 dk
FROM, RUN, COPY ve CMD'yi birleştirerek bir Dockerfile yazarsın.
Özet: Dockerfile
Bu grupta:
- Dockerfile, image'ı yukarıdan aşağıya talimatlarla tarif eder; ilk talimat
FROM'dur. - Temel image sürümle sabitlenir;
-slim/-alpineboyutu küçültür. - Her
RUNbir katmandır; kurulum ve temizlik aynı RUN'da yapılır. COPYcontext'ten kopyalar; bağımlılık dosyası koddan önce kopyalanır.CMDvarsayılan komut,ENTRYPOINTsabit programdır; exec biçimi tercih edilir.
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "app.py"]Uygulama Tam bir Python Dockerfile'ı
python:3.12-slim tabanlı, /app çalışma dizinli bir Dockerfile yaz: requirements.txt'yi kopyala ve pip install --no-cache-dir -r requirements.txt çalıştır; tüm projeyi kopyala; 8000 portunu belgele; CMD exec biçiminde python app.py olsun.
Başlangıç kodu
# buraya yazÖrnek çözüm
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "app.py"]Beklenen çıktı
[+] Building 4.2s (8/8) FINISHED => naming to docker.io/library/api:latest done
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Shell biçimindeki CMD'nin sakıncası nedir?
- Daha büyük image üretir
- Ortam değişkeni kullanamaz
- Build'i yavaşlatır
- Uygulama SIGTERM'i almayabilir ve düzgün kapanamaz Doğru cevap
Açıklama: Shell biçiminde PID 1 /bin/sh olur.
2 Çalışma dizinini ayarla.
____ /app
WORKDIR /app
Açıklama: WORKDIR dizini yoksa oluşturur ve sonraki talimatlar için ayarlar.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
FROM |
İlk talimat |
RUN |
Build katmanı |
EXPOSE |
Port belgesi |
CMD |
Varsayılan komut |