Dockerfile Biçimlendiricinin Temel Özellikleri
- Dockerfile ve Containerfile'lar için girinti, boşluk ve satır sarma işlemlerini temizler
- Çok satırlı RUN talimatlarını tutarlı ters eğik çizgiler ve girinti ile normalleştirir
- Dockerfile anlamını korur – talimat yeniden sıralama yok, kabuk mantığı değişikliği yok
- Belirleyici çıktı: aynı girdi ve sürüm ⇒ aynı biçimlendirilmiş Dockerfile
- dprint kullanan pre-commit kancaları, monorepo'lar ve CI işleri için mükemmel yardımcı
- Söz dizimi vurgulama, diff-dostu çıktı ve kopyalama/indirme işlemleri ile web tabanlı düzenleyici
- Çok aşamalı yapılar, build arg'ları ve tipik Node/.NET/Go imajları ile iyi çalışır
🛠️ Bir Dockerfile Nasıl Biçimlendirilir for dockerfile-formatter
1. Dockerfile'ınızı Yapıştırın veya Yükleyin
Dockerfile'ınızı düzenleyiciye yapıştırın veya projenizden bir Dockerfile/Containerfile bırakın. Sadece denemek istiyorsanız küçük kod parçacıkları (tek bir FROM/RUN bloğu gibi) da çalışır.
2. Biçimlendiriciyi Çalıştırın
"Biçimlendir"e tıklayın. Araç, kaynak kodunuzu güvenli, dprint tabanlı bir arka uca göndererek çalışma mantığına dokunmadan girintileme, boşluklandırma, dizi stilindeki talimatları ve çok satırlı RUN zincirlerini ayarlar.
3. İnceleyin, Kopyalayın veya İndirin
Biçimlendirilmiş çıktıyı orijinal dosyanızla karşılaştırın. Memnun kaldığınızda, sonucu deponuza geri kopyalayın veya biçimlendirilmiş Dockerfile'ı doğrudan işlemek için indirin.
Teknik Detaylar
Desteklenen Dosya Türleri
Biçimlendirici, Docker, Podman ve benzeri araçlarda kullanılan Docker yapı talimatlarını ve uyumlu konteyner yapı dosyalarını hedefler.
| Tür | Örnek | Notlar |
|---|---|---|
| Dockerfile | Dockerfile, Dockerfile.prod, Dockerfile.node18 | Görüntüler için klasik Docker yapı dosyaları |
| Containerfile | Containerfile | Podman / Buildah tarzı yapılandırma dosyaları |
| Satır içi parçacıklar | FROM node:18-alpine | Hızlı testler için küçük parçalar veya örnekler de desteklenir |
Biçimlendirme Davranışı (dprint tarzı)
Bu araç tarafından kullanılan temel dprint eklentisinin üst düzey davranışları:
| Alan | Davranış | Örnek |
|---|---|---|
| Girintileme | RUN ve diğer talimatlardaki devam eden satırlar için girintilemeyi normalleştirir | RUN set -eux; \\n npm ci; \\n npm cache clean --force |
| Listeler ve diziler | CMD/ENTRYPOINT/HEALTHCHECK için JSON tarzı dizilerdeki boşlukları temizler | CMD ["npm", "start"] → CMD ["npm", "start"] (ancak tutarlı boşluklarla) |
| Boşluklandırma | Anlamı korurken talimatlar etrafındaki gereksiz boşlukları kaldırır | ENV NODE_ENV=production |
| Satır kaydırma | Sırayı değiştirmeden uzun RUN zincirlerini okunabilirlik için yeniden akışlandırabilir | Uzun kabuk boru hatları, farklarda taramayı ve incelemeyi kolaylaştırır |
| Yorumlar | Talimatların yanındaki tam satır ve satır içi yorumları korur | # derleme aşaması için temel imaj FROM node:18 AS build |
Hedef Dışılar
Bu biçimlendirici kasıtlı olarak düzene odaklanmıştır, böylece onu diğer DevOps araçlarıyla birleştirebilirsiniz:
| Öğe | Ele Alındı mı? | Notlar |
|---|---|---|
| Hadolint tarzı denetleme | ❌ | En iyi uygulama kontrolleri ve uyarılar için hadolint veya benzer araçları kullanın |
| Güvenlik taraması | ❌ | İmajların veya kayıt defterlerinin CVE veya güvenlik açığı taraması yapılmaz |
| İmaj oluşturma | ❌ | docker build komutunu çalıştırmaz veya Docker Engine ile etkileşime girmez |
| Talimat yeniden sıralama | ❌ | Talimatları asla yeniden sıralamaz; sadece girinti ve boşluk değişir |
| Temel imaj güçlendirme | ❌ | Temel imaj önermez; sağladığınız her şeyi biçimlendirir |
CLI ve CI Eşdeğerleri
Sonuçtan memnun musunuz? Aynı davranışı yerel olarak ve CI'da dprint ve tamamlayıcı araçlarla yansıtın.
Evrensel (dprint)
dprint'i başlatın ve Dockerfile eklentisini ekleyin
dprint init
# dprint.json dosyasına şunları ekleyin:
# {
# "plugins": ["https://plugins.dprint.dev/dockerfile-0.x.wasm"]
# }
# Ardından Docker dosyalarınızı biçimlendirin:
dprint fmt DockerfileBu çevrimiçi biçimlendiriciye en yakın eşleşme, böylece geliştiriciler ve CI aynı stili kullanır.
Linux/macOS
Hadolint ile denetleme (biçimlendirmeyi tamamlar)
hadolint DockerfileBiçimlendirmeyi (stil) denetimle (en iyi uygulamalar, daha küçük imajlar, sağlık kontrolleri) birleştirin.
Git / pre-commit
Commit öncesinde değiştirilen Docker dosyalarında dprint çalıştırın
# .pre-commit-config.yaml (kavramsal)
- repo: local
hooks:
- id: dprint-dockerfile
name: dprint Dockerfiles
entry: dprint fmt
language: system
files: "(Dockerfile|Containerfile)$"Ana dala birleştirilen her Docker dosyasının önceden biçimlendirilmiş olmasını garanti eder.
Yaygın Kullanım Senaryoları
Geliştirme ve Platform Mühendisliği
- Kod incelemesi öncesinde mikroservisler arasında Dockerfile'ları normalleştirin
- Birden fazla ekip veya şablondan miras kalan eski Dockerfile'ları temizleyin
- Görüntüleri, temel işletim sistemi sürümlerini veya derleme stratejilerini taşırken stili standartlaştırın
# Tipik çok aşamalı Dockerfile (temiz, inceleme dostu)
FROM node:18 AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci && npm cache clean --force
COPY . .
RUN npm run build
FROM node:18-alpine
WORKDIR /app
COPY --from=build /app/dist ./
CMD ["node", "index.js"]CI/CD İş Hatları
- Dockerfile'lar düzgün biçimlendirilmediğinde derlemeleri başarısız yapın
- Öncesi commit kancaları veya CI işleri aracılığıyla özellik dallarında stili otomatik düzeltin
- Uzun ömürlü monorepo'larda ve platform repo'larında Docker yapılandırmasını okunabilir tutun
# Örnek Git öncesi commit kancası (sözde-kod)
#!/bin/sh
changed=$(git diff --cached --name-only --diff-filter=ACM | grep -E 'Dockerfile|Containerfile' || true)
[ -z "$changed" ] && exit 0
dprint fmt $changed
git add $changedEkip Onboarding & Tutarlılık
- Yeni ekip üyelerine takip edecekleri tek, görüşlü bir Dockerfile stili verin
- PR'lardan kod stili tartışmalarını kaldırın: biçimlendiriciyi gerçeğin kaynağı yapın
- Yerel biçimlendirmeyi, repo kancalarını ve CI işlerini aynı dprint yapılandırması etrafında hizalayın
# Örnek alıntı docs/onboarding.md için
1. dprint'i yerel olarak yükleyin
2. Paylaşılan dprint.json'ı platform repo'sundan kopyalayın
3. Bir pull request açmadan önce `dprint fmt Dockerfile` çalıştırın❓ Frequently Asked Questions
Biçimlendirme, görüntümün nasıl derlendiğini değiştirir mi?
Bu, hadolint ile linting ile aynı mı?
Bu stili CI'da zorunlu kılabilir miyim?
Çok aşamalı derlemeleri destekliyor mu?
Dockerfile'ım bir sunucuya yükleniyor mu?
Pro Tips
Dockerfile stilinin servisler veya ekipler arasında kaymasını önlemek için biçimlendirmeyi CI'da otomatik olarak çalıştırın.
Bu biçimlendiriciyi hadolint gibi bir denetleyici ile eşleştirerek hem düzen hem de en iyi uygulama rehberliğini kapsayın.
Bir projede erken aşamada standart bir çok aşamalı Dockerfile şablonu üzerinde anlaşın ve yeni servislerin aynı yapıyı izlemesi için biçimli tutun.
Monorepo'da çalışıyorsanız, uygulama kodu, altyapı kodu ve Dockerfile'ların tutarlı kurallar kullanması için tek bir dprint yapılandırmasını paylaşın.
Additional Resources
Other Tools
- CSS Güzelleştirici
- HTML Güzelleştirici
- JavaScript Güzelleştirici
- PHP Güzelleştirici
- Renk Seçici
- Sprite Çıkarıcı
- Base64 Çözücü
- Base64 Kodlayıcı
- C# Biçimlendirici
- CSV Biçimlendirici
- Elm Biçimlendirici
- ENV Biçimlendirici
- Go Biçimlendirici
- GraphQL Biçimlendirici
- HCL Biçimlendirici
- INI Biçimlendirici
- JSON Biçimlendirici
- Latex Biçimlendirici
- Markdown Biçimlendirici
- ObjectiveC Biçimlendirici
- Php Formatter
- Proto Biçimlendirici
- Python Biçimlendirici
- Ruby Biçimlendirici
- Rust Biçimlendirici
- Scala Biçimlendirici
- Shell Script Biçimlendirici
- SQL Biçimlendirici
- SVG Biçimlendirici
- Swift Biçimlendirici
- TOML Biçimlendirici
- Typescript Formatter
- XML Biçimlendirici
- YAML Biçimlendirici
- Yarn Biçimlendirici
- CSS Küçültücü
- Html Minifier
- Javascript Minifier
- JSON Küçültücü
- XML Küçültücü
- HTTP Başlıkları Görüntüleyici
- PDF'den Metne
- Regex Test Edici
- SERP Sıra Kontrolü
- Whois Sorgulama