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