dockerfmt - Dockerfile Biçimlendiricisi
(github.com/reteps)- Mevcut
dockfmtiçin modernleştirilmiş bir alternatif araç olup Dockerfile dosyalarını otomatik olarak düzenler ve kod stilini hizalar - Dahili olarak Dockerfile sözdizimi analizi için
buildkit,RUNkomutları içindeki shell script biçimlendirmesi içinmvdan/shkullanır - Tutarlı bir kod stili korumaya yardımcı olur ve kod incelemeleri ile CI ortamlarında faydalı şekilde kullanılabilir
Kullanım
dockerfmt [Dockerfile] [flags]
dockerfmt [command]
- Başlıca komutlar:
- completion: shell otomatik tamamlama betiği oluşturur
- help: komut yardımı
- version: sürümü gösterir
- Başlıca bayraklar:
- -c, --check: yalnızca biçimlendirilip biçimlendirilmediğini kontrol eder
- -i, --indent: girinti boşluk sayısını ayarlar (varsayılan 4)
- -n, --newline: dosya sonuna satır sonu karakteri ekler
- -s, --space-redirects: yönlendirme operatörlerinden sonra boşluk ekler
- -w, --write: değişiklikleri kaynak dosyanın üzerine yazar
Pre-commit kancası yapılandırması
- pre-commit kancası olarak entegre edilebilir
- .pre-commit-config.yaml dosyası örneği:
repos: - repo: https://github.com/reteps/dockerfmt rev: main hooks: - id: dockerfmt args: - --indent=4
Mevcut kısıtlamalar
RUNkomutlarında noktalı virgül (;) veya komut gruplaması henüz desteklenmiyor- Uzun JSON komutları için otomatik satır bölme özelliği yok
# escape=Xdirektifi desteklenmiyor
Özellik tanıtımı
-
RUNkomutu biçimlendirmesindemvdan/shkullanır -
Temel heredoc desteği:
RUN <<EOF echo "hello" echo "world" EOF -
RUNkomutu içinde yorum desteği:RUN echo "hello" \ # this is a comment && echo "world"RUN echo "hello" \ # this is a comment # that spans multiple lines && echo "world" -
Yorumların biçimlendirilen konuma doğru şekilde eklenmesini sağlamaya çalışır, ancak yorumlar ayrıştırıcı aşamasında kaldırıldığı için bu zordur
JS bağlayıcısı
- JS bağlayıcısı
jsdizininde yer alır - Kullanım için
js/README.mddosyasına bakılabilir
Diğer notlar
- Henüz 1.0.0 öncesi bir sürüm olduğundan üretim ortamında kullanılması önerilmez
1 yorum
Hacker News görüşleri
RUN set -e ;\ export DEBIAN_FRONTEND=noninteractive ;\ etc etc&&desteklendiği gösteriliyor. Farkın nedenini merak ediyorumRUN foo && \ bar && \ :RUN set -e && \ foo ; \ bar ; \ :FROM foo ... FROM bar ...