Build checks


BuildKit has built-in support for analyzing your build configuration based on a set of pre-defined rules for enforcing Dockerfile and building best practices. Adhering to these rules helps avoid errors and ensures good readability of your Dockerfile.

Checks run as a build invocation, but instead of producing a build output, it performs a series of checks to validate that your build doesn't violate any of the rules. To run a check, use the --check flag:

$ docker build --check .

To learn more about how to use build checks, see Checking your build configuration.

Name Description
StageNameCasing Stage names should be lowercase
FromAsCasing The 'as' keyword should match the case of the 'from' keyword
NoEmptyContinuation Empty continuation lines will become errors in a future release
ConsistentInstructionCasing All commands within the Dockerfile should use the same casing (either upper or lower)
DuplicateStageName Stage names should be unique
ReservedStageName Reserved words should not be used as stage names
JSONArgsRecommended JSON arguments recommended for ENTRYPOINT/CMD to prevent unintended behavior related to OS signals
MaintainerDeprecated The MAINTAINER instruction is deprecated, use a label instead to define an image author
UndefinedArgInFrom FROM command must use declared ARGs
WorkdirRelativePath Relative workdir without an absolute workdir declared within the build can have unexpected results if the base image changes
UndefinedVar Variables should be defined before their use
MultipleInstructionsDisallowed Multiple instructions of the same type should not be used in the same stage
LegacyKeyValueFormat Legacy key/value format with whitespace separator should not be used
RedundantTargetPlatform Setting platform to predefined $TARGETPLATFORM in FROM is redundant as this is the default behavior
SecretsUsedInArgOrEnv Sensitive data should not be used in the ARG or ENV commands
InvalidDefaultArgInFrom Default value for global ARG results in an empty or invalid base image name
FromPlatformFlagConstDisallowed FROM --platform flag should not use a constant value
CopyIgnoredFile (experimental) Attempting to Copy file that is excluded by .dockerignore
InvalidDefinitionDescription (experimental) Comment for build stage or argument should follow the format: `# `. If this is not intended to be a description comment, add an empty line or comment between the instruction and the comment.