Alat Pemformat Dockerfile Baharu Menangani Keperluan Pemformatan, Tetapi Mempunyai Batasan

BigGo Editorial Team
Alat Pemformat Dockerfile Baharu Menangani Keperluan Pemformatan, Tetapi Mempunyai Batasan

Komuniti pembangunan kontainer telah membincangkan alat baharu yang dipanggil dockerfmt yang bertujuan untuk menseragamkan dan meningkatkan pemformatan Dockerfile. Alat ini, yang dibina di atas penghurai dalaman buildkit, berusaha untuk membawa keupayaan pemformatan automatik kepada Dockerfile seperti yang diharapkan oleh pembangun dalam bahasa pengaturcaraan lain.

Pemformatan Dockerfile Moden dengan Batasan

Dockerfmt menawarkan beberapa ciri berguna untuk pembangun yang bekerja dengan definisi kontainer, termasuk pemformatan langkah RUN dengan mvdan/sh, sokongan untuk heredocs asas, dan pengendalian komen dalam talian dalam langkah run. Alat ini menyediakan pilihan baris arahan untuk memeriksa pemformatan, menulis output yang diformat kembali ke fail, mengawal indentasi, dan memastikan fail berakhir dengan baris baharu. Walau bagaimanapun, ahli komuniti telah menunjukkan beberapa batasan yang mungkin menjejaskan penerimaannya. Menurut dokumentasi, penghurai RUN tidak menyokong pengelompokan atau koma bertitik dalam arahan, tiada pembungkusan baris untuk arahan JSON yang panjang, dan arahan #escape=X tidak disokong.

Seorang ahli komuniti menekankan batasan ini, dengan menyatakan:

Saya tegas berada dalam kumpulan RUN set -e ;\ export DEBIAN_FRONTEND=noninteractive ;\ dan sebagainya - jadi saya rasa alat ini bukan untuk saya

Ciri-Ciri Utama dockerfmt

  • Format langkah RUN dengan mvdan/sh
  • Sokongan untuk heredocs asas
  • Sokongan untuk komen sebaris dalam langkah run
  • Ikatan JS tersedia

Batasan

  • Penghurai RUN tidak menyokong pengelompokan atau koma bertitik dalam arahan
  • Tiada pembungkusan baris untuk arahan JSON yang panjang
  • Arahan escape=X tidak disokong

Pilihan Arahan

  • -c, --check: Memeriksa sama ada fail telah diformat
  • -w, --write: Menulis output yang diformat kembali ke fail
  • -1, --indent uint: Bilangan ruang untuk indentasi (lalai 4)
  • -n, --newline: Akhiri fail dengan baris baharu pada penghujung

Ekosistem Alat Pembinaan Kontainer yang Berkembang

Perbincangan mengenai dockerfmt telah berkembang menjadi perbualan yang lebih luas tentang ekosistem pembinaan imej kontainer. Ahli komuniti membincangkan kelebihan menggunakan Dockerfile berbanding alternatif seperti Podman, Buildah, buildpacks, Nix, kaniko, ko, bazel, dan apko. Setiap alternatif menawarkan pertukaran yang berbeza berbanding dengan Dockerfile tradisional. Sebagai contoh, Buildah telah ditonjolkan kerana menyediakan alat yang sama (RUN, ADD, dll.) tetapi dalam persekitaran shell yang lebih berkuasa, walaupun dengan kos cache lapisan automatik.

Penerimaan dan Integrasi Komuniti

Alat ini telah mendapat beberapa tarikan dalam komuniti pembangun. Seorang pengulas menyebut tentang mengintegrasikan dockerfmt ke dalam penyemak dan pemformat kod universal mereka yang dipanggil Qlty CLI, menyatakan bahawa plugin itu hanya mengambil masa kira-kira sepuluh minit untuk ditambah. Integrasi yang cepat ini menunjukkan dockerfmt mempunyai API yang mudah yang menjadikannya mudah diakses untuk pembina alat.

Beberapa pengguna menunjukkan ironi bahawa projek dockerfmt sendiri tidak termasuk Dockerfile, menjadikan sukar bagi pembangun untuk menguji alat tersebut dengan cepat dalam persekitaran berkontainer. Penyelenggara projek memberi respons kepada maklum balas ini, berjanji untuk mengedarkan keluaran Docker bagi binari tersebut tidak lama lagi.

Memandangkan penjanaan kod automatik melalui LLM menjadi semakin biasa, alat seperti dockerfmt mungkin menjadi semakin penting untuk mengekalkan kod yang bersih dan konsisten merentasi projek. Piawaian pemformatan merentasi semua bahasa dan fail konfigurasi membantu mengekalkan diff yang bersih dan menjadikan pangkalan kod lebih mudah diselenggarakan, terutamanya dalam persekitaran kolaboratif.

Rujukan: dockerfmt