GitHub - jessfraz/dockfmt: Dockerfile format and parser. Like gofmt but for Dockerfiles. (original) (raw)

dockfmt

make-all make-image GoDoc

Dockerfile format.

NOTE: This is a work in progress so calm yourself if you want to file 80 bajillion issues.

Table of Contents

Installation

Binaries

For installation instructions from binaries please visit the Releases Page.

Via Go

$ go get github.com/jessfraz/dockfmt

Usage

$ dockfmt -h dockfmt - Dockerfile format.

Usage: dockfmt

Flags:

-d, --debug enable debug logging (default: false)

Commands:

base List the base image used in the Dockerfile(s). dump Dump parsed Dockerfile(s). fmt Format the Dockerfile(s). maintainer List the maintainer for the Dockerfile(s). stages List the stages in the Dockerfile. workdir List the workdirs for the Dockerfile(s). version Show the version information.

Format

Get help

$ dockfmt fmt -h Usage: dockfmt fmt [OPTIONS] [DOCKERFILE...]

Format the Dockerfile(s).

Flags:

-D, --diff display diffs instead of rewriting files (default: false) -d, --debug enable debug logging (default: false) -l, --list list files whose formatting differs from dockfmt's (default: false) -w, --write write result to (source) file instead of stdout (default: false)

Get a diff

$ dockfmt fmt -d htop/Dockerfile diff htop/Dockerfile dockfmt/htop/Dockerfile --- /tmp/dockfmt143910590 2016-09-19 15:59:22.612250710 -0700 +++ /tmp/dockfmt412224773 2016-09-19 15:59:22.612250710 -0700 @@ -4,10 +4,11 @@

--pid host \

jess/htop

-FROM alpine:latest -MAINTAINER Jessie Frazelle jess@linux.com + +FROM alpine:latest +MAINTAINER Jessie Frazelle jess@linux.com

-RUN apk --no-cache add
+RUN apk add --no-cache
htop

-CMD [ "htop" ] +CMD ["htop"]

List multiple files with different output

$ dockfmt fmt -l */Dockerfile //Dockerfile ab/Dockerfile afterthedeadline/Dockerfile android-tools/Dockerfile ansible/Dockerfile apt-file/Dockerfile atom/Dockerfile audacity/Dockerfile awscli/Dockerfile beeswithmachineguns/Dockerfile buttslock/Dockerfile camlistore/Dockerfile cathode/Dockerfile ...

Base image inspection

$ dockfmt base */Dockerfile //Dockerfile BASE COUNT debian:stretch 50 alpine:latest 30 debian:sid 28 ubuntu:16.04 12 alpine:edge 7 python:2-alpine 3 ruby:alpine 2 java:7-alpine 2 r.j3ss.co/wine 1 kalilinux/kali-linux-docker 1 haskell 1 mhart/alpine-node:5 1 r.j3ss.co/cpuminer 1 opensuse 1 java:8-alpine 1 golang:latest 1

Maintainer inspection

$ dockfmt maintainer */Dockerfile //Dockerfile MAINTAINER COUNT Jessie Frazelle jess@jskdj.com 113 Christian Koep christian.koep@ksldkfj.de 11 Justin Garrison justinleegarrison@hskdl.com 2 Daniel Romero infoslack@jjskl.com 1 Cris G c@skdlemfhtj.com 1

Stage inspection

$ dockfmt stages Dockerfile STAGE INTERPOLATED health-check false python-deps false stage-2 true

Workdir inspection

$ dockfmt workdir */Dockerfile //Dockerfile WORKDIR COUNT /srv 3 /app 1