Dockerfmt: A Dockerfile Formatter

https://news.ycombinator.com/rss Hits: 14
Summary

dockerfmt Dockerfile format and parser, and a modern version of dockfmt. Built on top of the internal buildkit parser. Installation Binaries are available from the releases page. Usage A updated version of the dockfmt. Uses the dockerfile parser from moby/buildkit and the shell formatter from mvdan/sh. Usage: dockerfmt [Dockerfile] [flags] dockerfmt [command] Available Commands: completion Generate the autocompletion script for the specified shell help Help about any command version Print the version number of dockerfmt Flags: -c, --check Check if the file(s) are formatted -h, --help help for dockerfmt -i, --indent uint Number of spaces to use for indentation (default 4) -n, --newline End the file with a trailing newline -w, --write Write the formatted output back to the file(s) Use "dockerfmt [command] --help" for more information about a command. Limitations The RUN parser currently doesn't support grouping or semicolons in commands parser currently doesn't support grouping or semicolons in commands No line wrapping is performed for long JSON commands The # escape=X directive is not supported Contributions are welcome! Features Format RUN steps with https://github.com/mvdan/sh steps with https://github.com/mvdan/sh Support for basic heredocs: RUN <<EOF echo "hello" echo "world" EOF Support for basic inline comments in run steps: RUN echo "hello" \ # this is a comment && echo "world" RUN echo "hello" \ # this is a comment # that spans multiple lines && echo "world" This is surprisingly non-trivial as we want to attach the comments to their position in the formatted output, but they are stripped by the parser beforehand. JS Bindings

First seen: 2025-04-09 02:27

Last seen: 2025-04-09 15:36