Loading…

Tentang Pemformat Dockerfile Online Gratis

Dockerfile berantakan? Indentasi rusak, spasi tidak konsisten, dan rantai RUN sulit dibaca? Pemformat Dockerfile ini menggunakan mesin berbasis dprint (melalui backend aman) untuk menormalkan Dockerfile dan Containerfile Anda dengan tata letak bersih dan berpendapat. Ini menjaga instruksi Anda tetap di tempatnya sambil membuat file lebih mudah ditinjau, di-versi, dan diotomatisasi di berbagai lingkungan.

Fitur Utama Pemformat Dockerfile

  • Membersihkan indentasi, spasi, dan pembungkusan baris untuk Dockerfile dan Containerfile
  • Menormalkan instruksi RUN multi-baris dengan garis miring terbalik dan indentasi yang konsisten
  • Menghormati semantik Dockerfile – tidak ada pengurutan ulang instruksi, tidak ada perubahan logika shell
  • Keluaran deterministik: input dan versi yang sama ⇒ Dockerfile terformat yang sama
  • Pendamping sempurna untuk pre-commit hooks, monorepo, dan pekerjaan CI menggunakan dprint
  • Editor berbasis web dengan penyorotan sintaks, keluaran ramah-diff, dan aksi salin/unduh
  • Bekerja baik dengan build multi-tahap, argumen build, dan gambar Node/.NET/Go tipikal

🛠️ Cara Memformat Dockerfile for dockerfile-formatter

1

1. Tempel atau Unggah Dockerfile Anda

Tempelkan Dockerfile Anda ke editor atau jatuhkan Dockerfile/Containerfile dari proyek Anda. Cuplikan kecil (seperti blok FROM/RUN tunggal) juga berfungsi jika Anda hanya ingin bereksperimen.

2

2. Jalankan Pemformat

Klik "Format". Alat ini mengirimkan sumber Anda ke backend aman berbasis dprint yang menyesuaikan indentasi, spasi, instruksi gaya array, dan rantai RUN multi-baris tanpa menyentuh logika eksekusi.

3

3. Tinjau, Salin, atau Unduh

Bandingkan keluaran yang diformat dengan file asli Anda. Saat Anda puas, salin hasilnya kembali ke repo Anda atau unduh Dockerfile yang diformat untuk langsung di-commit.

Detail Teknis

Jenis File yang Didukung

Pemformat ini menargetkan instruksi build Docker dan file build kontainer yang kompatibel digunakan di Docker, Podman, dan alat serupa.

JenisContohCatatan
DockerfileDockerfile, Dockerfile.prod, Dockerfile.node18File build Docker klasik untuk image
ContainerfileContainerfileFile konfigurasi gaya Podman / Buildah
Cuplikan inlineFROM node:18-alpineFragmen kecil atau contoh juga didukung untuk tes cepat

Perilaku Pemformatan (Gaya dprint)

Perilaku tingkat tinggi dari plugin dprint yang mendasari yang digunakan oleh alat ini:

AreaPerilakuContoh
IndentasiMenormalisasi indentasi untuk baris lanjutan dalam RUN dan instruksi lainnyaRUN set -eux; \\n npm ci; \\n npm cache clean --force
Daftar & arrayMembersihkan spasi dalam array gaya JSON untuk CMD/ENTRYPOINT/HEALTHCHECKCMD ["npm", "start"] → CMD ["npm", "start"] (tetapi dengan spasi yang konsisten)
SpasiMenghapus spasi berlebihan di sekitar instruksi sambil mempertahankan maknaENV NODE_ENV=production
Pembungkusan barisDapat mengalir ulang rantai RUN panjang untuk keterbacaan tanpa mengubah urutanPipa shell panjang menjadi lebih mudah dipindai dan ditinjau dalam diff
KomentarMempertahankan komentar baris penuh dan sebaris di samping instruksi# base image for build stage\nFROM node:18 AS build

Bukan Tujuan

Formatter ini sengaja dibatasi pada tata letak, sehingga Anda dapat menggabungkannya dengan alat DevOps lainnya:

ItemDitangani?Catatan
Linting gaya HadolintGunakan hadolint atau alat serupa untuk pemeriksaan dan peringatan praktik terbaik
Pemindaian keamananTidak ada pemindaian CVE atau kerentanan pada gambar atau registry
Pembuatan gambarTidak menjalankan docker build atau berinteraksi dengan Docker Engine
Pengurutan ulang instruksiTidak pernah mengurutkan ulang instruksi; hanya perubahan indentasi dan spasi
Pengerasan gambar dasarTidak merekomendasikan gambar dasar; ini memformat apa pun yang Anda berikan

CLI & Setara CI

Suka hasilnya? Cerminkan perilaku yang sama secara lokal dan di CI dengan dprint dan alat pelengkap.

Universal (dprint)

Inisialisasi dprint dan tambahkan plugin Dockerfile

dprint init
# Di dprint.json, tambahkan:
# {
#   "plugins": ["https://plugins.dprint.dev/dockerfile-0.x.wasm"]
# }
# Kemudian format Dockerfile Anda:
dprint fmt Dockerfile

Paling cocok dengan formatter online ini, sehingga pengembang dan CI menggunakan gaya yang sama.

Linux/macOS

Lint dengan hadolint (melengkapi pemformatan)

hadolint Dockerfile

Gabungkan pemformatan (gaya) dengan linting (praktik terbaik, gambar lebih kecil, healthchecks).

Git / pre-commit

Jalankan dprint pada Dockerfile yang diubah sebelum commit

# .pre-commit-config.yaml (konseptual)
- repo: local
  hooks:
    - id: dprint-dockerfile
      name: dprint Dockerfiles
      entry: dprint fmt
      language: system
      files: "(Dockerfile|Containerfile)$"

Menjamin setiap Dockerfile yang digabungkan ke main sudah diformat.

Kasus Penggunaan Umum

Rekayasa Dev & Platform

  • Normalisasikan Dockerfile di seluruh layanan mikro sebelum tinjauan kode
  • Bersihkan Dockerfile warisan yang diwarisi dari berbagai tim atau templat
  • Standarisasi gaya saat memigrasikan gambar, versi OS dasar atau strategi pembuatan
# Dockerfile multi-tahap khas (bersih, ramah tinjauan)\nFROM node:18 AS build\nWORKDIR /app\nCOPY package*.json ./\nRUN npm ci && npm cache clean --force\nCOPY . .\nRUN npm run build\n\nFROM node:18-alpine\nWORKDIR /app\nCOPY --from=build /app/dist ./\nCMD ["node", "index.js"]

Pipelines CI/CD

  • Gagalkan pembuatan ketika Dockerfile tidak diformat dengan benar
  • Perbaiki gaya secara otomatis di cabang fitur melalui kait pra-komit atau pekerjaan CI
  • Pertahankan konfigurasi Docker tetap terbaca di repositori monorepo dan platform yang berumur panjang
# Contoh kait pra-komit Git (kode semu)\n#!/bin/sh\nchanged=$(git diff --cached --name-only --diff-filter=ACM | grep -E 'Dockerfile|Containerfile' || true)\n[ -z "$changed" ] && exit 0\ndprint fmt $changed\ngit add $changed

Onboarding Tim & Konsistensi

  • Berikan anggota tim baru satu gaya Dockerfile yang terarah untuk diikuti
  • Hilangkan debat gaya kode dari PR: biarkan formatter menjadi sumber kebenaran
  • Sejajarkan pemformatan lokal, kait repositori, dan pekerjaan CI di sekitar konfigurasi dprint yang sama
# Contoh cuplikan untuk docs/onboarding.md\n1. Instal dprint secara lokal\n2. Salin dprint.json bersama dari repositori platform\n3. Jalankan `dprint fmt Dockerfile` sebelum membuka permintaan tarik

❓ Frequently Asked Questions

Apakah pemformatan mengubah cara gambar saya dibuat?

Tidak. Formatter hanya menyentuh spasi, indentasi, dan pembungkusan baris. Ini mempertahankan urutan dan konten instruksi Dockerfile Anda. Selama Dockerfile asli Anda valid, hasil pembuatan gambar harus berperilaku sama.

Apakah ini sama seperti pelintingan dengan hadolint?

Tidak. Alat ini adalah formatter, bukan linter. Ini memperbaiki masalah gaya dan tata letak (spasi, indentasi, pembungkusan), tetapi tidak akan memperingatkan Anda tentang praktik terbaik (seperti menggunakan gambar dasar tertentu, pemeriksaan kesehatan, atau ukuran lapisan). Untuk itu, gabungkan dengan hadolint atau linter Dockerfile lainnya.

Bisakah saya menegakkan gaya ini di CI?

Ya. Anda dapat mengonfigurasi dprint dengan plugin Dockerfile di repositori Anda dan jalankan `dprint fmt` (atau `dprint check`) dalam pipeline CI Anda. Dengan begitu, CI dapat gagal ketika Dockerfile menyimpang dari gaya yang diharapkan, sesuai dengan yang Anda lihat di formatter daring ini.

Apakah mendukung pembuatan multi-tahap?

Ya. Dockerfile multi-tahap diformat seperti file lainnya. Setiap instruksi FROM, COPY, RUN, dan ENV dipertahankan, dan tata letaknya dibuat konsisten di semua tahap tanpa mengubah semantik pembuatan.

Apakah Dockerfile saya diunggah ke server?

Untuk alat ini, pemformatan dilakukan melalui titik akhir backend yang aman menggunakan formatter berbasis dprint. Sumber Anda digunakan untuk menghitung respons dan tidak dimaksudkan untuk disimpan dalam jangka panjang. Seperti biasa, hindari menempelkan detail infrastruktur yang sangat rahasia ke dalam alat daring mana pun kecuali Anda mengendalikan seluruh tumpukan.

Pro Tips

Best Practice

Jalankan pemformatan secara otomatis di CI agar gaya Dockerfile tidak pernah menyimpang antar layanan atau tim.

Best Practice

Pasangkan pemformat ini dengan pemeriksa seperti hadolint untuk mencakup tata letak dan panduan praktik terbaik.

Best Practice

Setujui templat Dockerfile multi-tahap standar sejak awal proyek dan pertahankan formatnya agar layanan baru mengikuti struktur yang sama.

Best Practice

Jika Anda bekerja di monorepo, bagikan satu konfigurasi dprint agar kode aplikasi, kode infrastruktur, dan Dockerfile menggunakan konvensi yang konsisten.

Additional Resources

Other Tools