validate-dockerfile
v1.8.1
Published
Validates a Dockerfile
Downloads
147
Readme
#validate-dockerfile
NodeJS validator for dockerfiles.
##Installation
npm install --save validate-dockerfile
##Usage:
var validateDockerfile = require('validate-dockerfile');
var dockerfile = 'FROM ubuntu/nodejs';
var isValid = validateDockerfile(dockerfile);
##Returned value
If the dockerfile is valid, the object returned will be simply:
{
valid: true
}
If something went wrong somewhere, the object will detail what and where:
{
valid: false,
line: 4,
message: 'Invalid instruction',
priority: 0
}
The error messages that can be returned are:
###Priority 0 (fatal)
Invalid instruction
- There's a instruction that isn't valid for a dockerfile.
- i.e.
CONJURE stolen_data_tapes
Missing or misplaced FROM
FROM
is not the first instruction in the dockerfile.- For more: https://docs.docker.com/reference/builder/#from
Invalid type
- You gave us something other than a string
###Priority 1 (Bad)
Bad parameters
- An instruction's parameters did not satisfy our regexes.
- i.e.
FROM Incom/Z-95 Headhunter
Missing CMD
- The dockerfile does not contain a
CMD
instruction - For more: https://docs.docker.com/reference/builder/#cmd
- The dockerfile does not contain a
Line numbers will be returned on Missing FROM
, Bad parameters
and Invalid instruction
errors.
##CLI
Install validate-dockerfile globally (npm install -g validate-dockerfile
) to gain access to docklint
, the CLI wrapper for validate-dockerfile.
docklint
takes one parameter, the path to a Dockerfile. If no path is given, it looks for a Dockerfile in the current directory. It will exit with a code of 0
if the Dockerfile is legit, 1
otherwise.
##TODO
Non-mission-critical stuff that'd be nice to have:
- Stream support
Examples used in testing borrowed from https://github.com/kstaken/dockerfile-examples/tree/master/salt-minion. Thanks!