Loading…

Hakkında Ücretsiz Çevrimiçi Dockerfile Biçimlendirici

Dağınık Dockerfile mı? Bozuk girintiler, tutarsız boşluklar ve okunamaz RUN zincirleri mi? Bu Dockerfile Biçimlendirici, Dockerfile ve Containerfile'larınızı temiz, görüşlü bir düzenle normalleştirmek için dprint tabanlı bir motor kullanır (güvenli bir arka uç üzerinden). Talimatlarınızı tam yerinde tutarken, dosyayı ortamlar arasında incelemek, sürümlemek ve otomatikleştirmek için daha kolay hale getirir.

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

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

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

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ÖrnekNotlar
DockerfileDockerfile, Dockerfile.prod, Dockerfile.node18Görüntüler için klasik Docker yapı dosyaları
ContainerfileContainerfilePodman / Buildah tarzı yapılandırma dosyaları
Satır içi parçacıklarFROM node:18-alpineHı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ı:

AlanDavranışÖrnek
GirintilemeRUN ve diğer talimatlardaki devam eden satırlar için girintilemeyi normalleştirirRUN set -eux; \\n npm ci; \\n npm cache clean --force
Listeler ve dizilerCMD/ENTRYPOINT/HEALTHCHECK için JSON tarzı dizilerdeki boşlukları temizlerCMD ["npm", "start"] → CMD ["npm", "start"] (ancak tutarlı boşluklarla)
BoşluklandırmaAnlamı korurken talimatlar etrafındaki gereksiz boşlukları kaldırırENV NODE_ENV=production
Satır kaydırmaSırayı değiştirmeden uzun RUN zincirlerini okunabilirlik için yeniden akışlandırabilirUzun kabuk boru hatları, farklarda taramayı ve incelemeyi kolaylaştırır
YorumlarTalimatları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:

ÖğeEle Alındı mı?Notlar
Hadolint tarzı denetlemeEn 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şturmadocker build komutunu çalıştırmaz veya Docker Engine ile etkileşime girmez
Talimat yeniden sıralamaTalimatları asla yeniden sıralamaz; sadece girinti ve boşluk değişir
Temel imaj güçlendirmeTemel 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 Dockerfile

Bu ç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 Dockerfile

Biç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 $changed

Ekip 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?

Hayır. Biçimlendirici yalnızca boşlukları, girintileri ve satır sarmalamayı düzenler. Dockerfile talimatlarınızın sırasını ve içeriğini korur. Orijinal Dockerfile'ınız geçerli olduğu sürece, ortaya çıkan görüntü derlemesi aynı şekilde davranmalıdır.

Bu, hadolint ile linting ile aynı mı?

Hayır. Bu araç bir biçimlendiricidir, bir linter değildir. Stil ve düzen sorunlarını (boşluk, girinti, sarmalama) düzeltir, ancak en iyi uygulamalar (belirli temel görüntüler, sağlık kontrolleri veya katman boyutları kullanmak gibi) konusunda sizi uyarmaz. Bunun için onu hadolint veya başka bir Dockerfile linter'ı ile birleştirin.

Bu stili CI'da zorunlu kılabilir miyim?

Evet. Deponuzda Dockerfile eklentisi ile dprint'i yapılandırabilir ve CI iş hattınızda `dprint fmt` (veya `dprint check`) çalıştırabilirsiniz. Bu şekilde, Dockerfile'lar beklenen stilden saptığında CI başarısız olabilir ve bu çevrimiçi biçimlendiricide gördüklerinizle eşleşir.

Çok aşamalı derlemeleri destekliyor mu?

Evet. Çok aşamalı Dockerfile'lar diğer dosyalar gibi biçimlendirilir. Her FROM, COPY, RUN ve ENV talimatı korunur ve düzen, derleme anlambilimini değiştirmeden tüm aşamalar arasında tutarlı hale getirilir.

Dockerfile'ım bir sunucuya yükleniyor mu?

Bu araç için biçimlendirme, dprint tabanlı bir biçimlendirici kullanılarak güvenli bir backend uç noktası aracılığıyla gerçekleştirilir. Kaynağınız yanıtı hesaplamak için kullanılır ve uzun süreli depolanması amaçlanmaz. Her zaman olduğu gibi, tüm yığını kontrol etmediğiniz sürece, yüksek gizlilikteki altyapı detaylarını herhangi bir çevrimiçi araca yapıştırmaktan kaçının.

Pro Tips

Best Practice

Dockerfile stilinin servisler veya ekipler arasında kaymasını önlemek için biçimlendirmeyi CI'da otomatik olarak çalıştırın.

Best Practice

Bu biçimlendiriciyi hadolint gibi bir denetleyici ile eşleştirerek hem düzen hem de en iyi uygulama rehberliğini kapsayın.

Best Practice

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.

Best Practice

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