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 .
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 | Instructions should be in consistent casing (all lower or all upper) |
FileConsistentCommandCasing | 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 |