Skip to main content
Disallows multiple consecutive empty lines in Dockerfiles.
PropertyValue
SeverityStyle
CategoryStyle
DefaultEnabled
Auto-fixYes (safe)

Description

Multiple consecutive blank lines add visual noise and waste vertical space. This rule limits the number of consecutive empty lines allowed anywhere in a Dockerfile, as well as at the beginning and end of the file. It mirrors ESLint’s no-multiple-empty-lines rule. A line is considered empty if it contains only whitespace characters (spaces, tabs).

Heredoc handling

  • RUN heredocs with a parseable shell (bash, sh, mksh): blank lines are flagged and fixable.
  • RUN heredocs with an unknown shebang (e.g., #!/usr/bin/env python3): skipped entirely.
  • COPY heredocs: skipped entirely (opaque file content).

Examples

Bad

FROM alpine:3.20


RUN apk add --no-cache curl



COPY . /app

Good

FROM alpine:3.20

RUN apk add --no-cache curl

COPY . /app

Configuration

Default (no config needed):
# Enabled by default: max=1, max-bof=0, max-eof=0
Allow up to 2 consecutive blank lines:
[rules.tally.no-multiple-empty-lines]
max = 2
Allow one blank line at beginning and end of file:
[rules.tally.no-multiple-empty-lines]
max-bof = 1
max-eof = 1

Options

OptionTypeDefaultDescription
maxinteger1Maximum consecutive empty lines allowed anywhere in the file
max-bofinteger0Maximum consecutive empty lines at the beginning of the file
max-eofinteger0Maximum consecutive empty lines at the end of the file

Auto-fix

This rule provides a safe auto-fix that removes excess blank lines:
tally lint --fix Dockerfile
Each group of consecutive excess blank lines is collapsed to the allowed maximum.