Loading…

Giới thiệu Công Cụ Định Dạng Dockerfile Trực Tuyến Miễn Phí

Dockerfile lộn xộn? Thụt lề hỏng, khoảng cách không nhất quán và chuỗi RUN khó đọc? Công cụ Định dạng Dockerfile này sử dụng động cơ dựa trên dprint (thông qua backend an toàn) để chuẩn hóa Dockerfiles và Containerfiles của bạn với bố cục sạch sẽ, theo quan điểm rõ ràng. Nó giữ nguyên các chỉ dẫn của bạn trong khi làm cho tệp dễ xem xét, phiên bản hóa và tự động hóa qua các môi trường.

Tính Năng Chính của Công Cụ Định Dạng Dockerfile

  • Làm sạch thụt lề, khoảng cách và ngắt dòng cho Dockerfiles và Containerfiles
  • Chuẩn hóa các lệnh RUN đa dòng với dấu gạch chéo ngược và thụt lề nhất quán
  • Tôn trọng ngữ nghĩa Dockerfile – không sắp xếp lại chỉ dẫn, không thay đổi logic shell
  • Đầu ra xác định: cùng đầu vào và phiên bản ⇒ cùng Dockerfile đã định dạng
  • Người bạn đồng hành hoàn hảo cho hook pre-commit, monorepo và công việc CI sử dụng dprint
  • Trình soạn thảo dựa trên web với tô sáng cú pháp, đầu ra thân thiện diff và hành động sao chép/tải xuống
  • Hoạt động tốt với bản dựng đa giai đoạn, đối số build và hình ảnh Node/.NET/Go điển hình

🛠️ Cách Định Dạng Dockerfile for dockerfile-formatter

1

1. Dán hoặc Tải Lên Dockerfile Của Bạn

Dán Dockerfile của bạn vào trình soạn thảo hoặc thả một Dockerfile/Containerfile từ dự án của bạn. Các đoạn mã nhỏ (như một khối FROM/RUN đơn lẻ) cũng hoạt động nếu bạn chỉ muốn thử nghiệm.

2

2. Chạy Công cụ Định dạng

Nhấp "Định dạng". Công cụ gửi mã nguồn của bạn đến một backend an toàn dựa trên dprint để điều chỉnh thụt lề, khoảng cách, hướng dẫn kiểu mảng và chuỗi RUN đa dòng mà không làm thay đổi logic thực thi.

3

3. Xem lại, Sao chép hoặc Tải xuống

So sánh kết quả đã định dạng với tập tin gốc của bạn. Khi hài lòng, sao chép kết quả trở lại kho lưu trữ của bạn hoặc tải xuống Dockerfile đã định dạng để commit trực tiếp.

Chi tiết Kỹ thuật

Loại Tập tin Hỗ trợ

Công cụ định dạng nhắm đến các hướng dẫn xây dựng Docker và các tập tin xây dựng container tương thích được sử dụng trong Docker, Podman và các công cụ tương tự.

LoạiVí dụGhi chú
DockerfileDockerfile, Dockerfile.prod, Dockerfile.node18Tập tin xây dựng Docker cổ điển cho images
ContainerfileContainerfileTập tin cấu hình kiểu Podman / Buildah
Đoạn mã nội tuyếnFROM node:18-alpineCác đoạn mã nhỏ hoặc ví dụ cũng được hỗ trợ để thử nghiệm nhanh

Hành vi Định dạng (Kiểu dprint)

Các hành vi cấp cao của plugin dprint cơ bản được sử dụng bởi công cụ này:

Lĩnh vựcHành viVí dụ
Thụt lềChuẩn hóa thụt lề cho các dòng tiếp tục trong RUN và các hướng dẫn khácRUN set -eux; \\n npm ci; \\n npm cache clean --force
Danh sách & mảngLàm sạch khoảng cách trong các mảng kiểu JSON cho CMD/ENTRYPOINT/HEALTHCHECKCMD ["npm", "start"] → CMD ["npm", "start"] (nhưng với khoảng cách nhất quán)
Khoảng cáchLoại bỏ khoảng trắng dư thừa xung quanh các hướng dẫn trong khi vẫn giữ nguyên ý nghĩaENV NODE_ENV=production
Ngắt dòngCó thể tái dòng các chuỗi RUN dài để dễ đọc mà không thay đổi thứ tựCác đường ống shell dài trở nên dễ quét và xem lại trong các diff
Ghi chúBảo toàn ghi chú toàn dòng và nội tuyến bên cạnh các chỉ dẫn# base image for build stage\nFROM node:18 AS build

Mục tiêu không bao gồm

Trình định dạng này được giới hạn cố ý về bố cục, để bạn có thể kết hợp nó với các công cụ DevOps khác:

MụcĐược xử lý?Ghi chú
Kiểm tra lỗi kiểu HadolintSử dụng hadolint hoặc các công cụ tương tự để kiểm tra và cảnh báo thực hành tốt nhất
Quét bảo mậtKhông quét CVE hoặc lỗ hổng bảo mật trên hình ảnh hoặc registry
Xây dựng hình ảnhKhông thực thi docker build hoặc tương tác với Docker Engine
Sắp xếp lại chỉ dẫnKhông bao giờ sắp xếp lại chỉ dẫn; chỉ thay đổi thụt lề và khoảng trắng
Củng cố hình ảnh cơ sởKhông đề xuất hình ảnh cơ sở; nó định dạng bất cứ thứ gì bạn cung cấp

Tương đương CLI & CI

Thích kết quả? Sao chép hành vi tương tự cục bộ và trong CI với dprint và các công cụ bổ sung.

Phổ quát (dprint)

Khởi tạo dprint và thêm plugin Dockerfile

dprint init
# Trong dprint.json, thêm:
# {
#   "plugins": ["https://plugins.dprint.dev/dockerfile-0.x.wasm"]
# }
# Sau đó định dạng Dockerfiles của bạn:
dprint fmt Dockerfile

Khớp gần nhất với trình định dạng trực tuyến này, để nhà phát triển và CI sử dụng cùng phong cách.

Linux/macOS

Kiểm tra lỗi với hadolint (bổ sung cho định dạng)

hadolint Dockerfile

Kết hợp định dạng (kiểu dáng) với kiểm tra lỗi (thực hành tốt nhất, hình ảnh nhỏ hơn, kiểm tra sức khỏe).

Git / pre-commit

Chạy dprint trên Dockerfiles đã thay đổi trước khi commit

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

Đảm bảo mọi Dockerfile hợp nhất vào main đã được định dạng sẵn.

Các Trường Hợp Sử Dụng Phổ Biến

Kỹ Thuật Phát Triển & Nền Tảng

  • Chuẩn hóa Dockerfiles trên các microservice trước khi xem xét mã
  • Dọn dẹp các Dockerfiles kế thừa từ nhiều nhóm hoặc mẫu cũ
  • Chuẩn hóa phong cách khi di chuyển hình ảnh, phiên bản hệ điều hành cơ sở hoặc chiến lược xây dựng
# Dockerfile đa giai đoạn điển hình (sạch sẽ, thân thiện với đánh giá)
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"]

Quy trình CI/CD

  • Đánh dấu bản dựng thất bại khi Dockerfiles không được định dạng đúng cách
  • Tự động sửa phong cách trên các nhánh tính năng thông qua hook pre-commit hoặc công việc CI
  • Giữ cấu hình Docker dễ đọc trong các kho mono và kho nền tảng tồn tại lâu
# Ví dụ hook pre-commit Git (mã giả)
#!/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

Hòa nhập nhóm & Tính nhất quán

  • Cung cấp cho thành viên mới một phong cách Dockerfile duy nhất và rõ ràng để tuân theo
  • Loại bỏ tranh luận về phong cách mã khỏi PR: để trình định dạng là nguồn chân lý
  • Căn chỉnh định dạng cục bộ, hook kho và công việc CI xung quanh cùng cấu hình dprint
# Đoạn mã ví dụ cho docs/onboarding.md
1. Cài đặt dprint cục bộ
2. Sao chép dprint.json chia sẻ từ kho nền tảng
3. Chạy `dprint fmt Dockerfile` trước khi mở pull request

❓ Frequently Asked Questions

Định dạng có thay đổi cách hình ảnh của tôi được xây dựng không?

Không. Trình định dạng chỉ tác động đến khoảng trắng, thụt lề và ngắt dòng. Nó giữ nguyên thứ tự và nội dung của các chỉ thị Dockerfile của bạn. Miễn là Dockerfile gốc của bạn hợp lệ, việc xây dựng hình ảnh kết quả sẽ hoạt động tương tự.

Đây có giống như kiểm tra lỗi với hadolint không?

Không. Công cụ này là một trình định dạng, không phải trình kiểm tra lỗi. Nó sửa các vấn đề về phong cách và bố cục (khoảng cách, thụt lề, ngắt dòng), nhưng sẽ không cảnh báo bạn về các phương pháp hay nhất (như sử dụng hình ảnh cơ sở cụ thể, kiểm tra sức khỏe hoặc kích thước lớp). Để làm điều đó, hãy kết hợp nó với hadolint hoặc một trình kiểm tra lỗi Dockerfile khác.

Tôi có thể áp dụng phong cách này trong CI không?

Có. Bạn có thể cấu hình dprint với plugin Dockerfile trong kho của mình và chạy `dprint fmt` (hoặc `dprint check`) trong quy trình CI của bạn. Bằng cách đó, CI có thể thất bại khi Dockerfiles lệch khỏi phong cách mong đợi, khớp với những gì bạn thấy trong trình định dạng trực tuyến này.

Nó có hỗ trợ bản dựng đa giai đoạn không?

Có. Các Dockerfile đa giai đoạn được định dạng giống như bất kỳ tệp nào khác. Mỗi chỉ thị FROM, COPY, RUN và ENV được giữ nguyên, và bố cục được làm nhất quán trên tất cả các giai đoạn mà không thay đổi ngữ nghĩa xây dựng.

Dockerfile của tôi có được tải lên máy chủ không?

Đối với công cụ này, việc định dạng được thực hiện thông qua một điểm cuối backend an toàn sử dụng trình định dạng dựa trên dprint. Mã nguồn của bạn được sử dụng để tính toán phản hồi và không có ý định lưu trữ lâu dài. Như mọi khi, tránh dán các chi tiết cơ sở hạ tầng có tính bảo mật cao vào bất kỳ công cụ trực tuyến nào trừ khi bạn kiểm soát toàn bộ ngăn xếp.

Pro Tips

Best Practice

Chạy định dạng tự động trong CI để phong cách Dockerfile không bao giờ bị sai lệch giữa các dịch vụ hoặc nhóm.

Best Practice

Kết hợp công cụ định dạng này với một công cụ kiểm tra lỗi như hadolint để bao quát cả bố cục và hướng dẫn thực hành tốt nhất.

Best Practice

Thống nhất về một mẫu Dockerfile đa giai đoạn chuẩn sớm trong dự án và giữ nó được định dạng để các dịch vụ mới tuân theo cùng cấu trúc.

Best Practice

Nếu bạn làm việc trong một kho lưu trữ đơn, hãy chia sẻ một cấu hình dprint duy nhất để mã ứng dụng, mã hạ tầng và Dockerfile sử dụng các quy ước nhất quán.

Additional Resources

Other Tools