Documentation Index
Fetch the complete documentation index at: https://tally.wharflab.com/llms.txt
Use this file to discover all available pages before exploring further.
Install tally
Pick your preferred package manager:See Installation for WinGet, RubyGems, Docker, and from-source options.
Lint a Dockerfile
Run tally against a single file or an entire directory (recursive):tally discovers files matching
Dockerfile, Dockerfile.*, *.Dockerfile, Containerfile, and Containerfile.*.To make the same lint command available through Docker, register the Docker CLI plugin:Lint a Bake or Compose entrypoint
If your build is defined by Docker Buildx Bake or Docker Compose, pass that file directly:Use See Build invocations for context handling, output attribution, and limitations.
--target for Bake targets or groups and --service for Compose services:Read the output
By default tally prints human-readable output with source snippets:Exit code
1 means violations were found. Exit code 0 means clean.Add a config file
Create Config is discovered automatically — no
.tally.toml in your project root to set defaults for your whole team:.tally.toml
--config flag needed.Enable context-aware rules
In direct Dockerfile mode, pass Bake and Compose entrypoints derive the build context from the selected target or service, so they do not use
--context to unlock rules that check .dockerignore interactions:--context.Lint from stdin
Pass- as the filename to read from stdin. Useful in pipelines:
--fix, the fixed content is written to stdout:
Next steps
Configuration
Full reference for
.tally.toml, environment variables, and CLI flags.Build invocations
Lint Dockerfiles through Bake targets and Compose services.
Auto-fix
Learn about safe and unsafe fixes, and per-rule fix modes.
Rules reference
Browse all rules across BuildKit, tally, Hadolint, and ShellCheck namespaces.
CI/CD integration
Add tally to GitHub Actions, GitLab CI, and other pipelines.