Docker Label Inspector is a tool to help ensure you're providing your Docker images with the metadata they will need out in the wilds of the internet.
It provides two useful tools; a label linter and a label validator.
The package includes a single executable, called dli
. You can pass --help
to individual commands for additional instructions and options.
$ dli Usage: dli [OPTIONS] COMMAND [ARGS]... Utilities for ensuring LABELS in Dockerfiles are well maintained Options: --help Show this message and exit. Commands: lint Check for common issues with Dockerfile... validate Validate Dockerfile LABELS based on a JSON...
The linter checks your labels against the official LABEL guidelines. By default dli
will check the file called Dockerfile
in the present working directory. You can pass a path via the --dockerfile
option.
$ dli lint ========> Check all labels have namespaces [WARN] Label 'vendor' should use a namespace based on reverse DNS notation ========> Check labels don't use reserved namespaces ========> Check labels only use valid characters ========> Check labels start and end with alpanumeric characters ========> Check labels for double dots and dashes
dli lint
will return a non-zero exit code if it finds any errors. This should make it useful for integrating into pipelines.
The validator validates the labels against a provided JSON Schema. The idea being you can use a custom schema for your organisation or, eventually, community provided schemas.
dli validate ========> Check labels based on schema in 'schema.json'
You can see a working example in the example directory. This includes a sample schema and Dockerfile. You can see sample output from an invalid Dockerfile below, in this case missing a required parameter.
$ dli validate ========> Check labels based on schema in 'schema.json' [ERROR] u'com.example.is-beta' is a required property Failed validating u'required' in schema: {u'properties': {u'com.example.is-beta': {u'type': u'string'}, u'com.example.release-date': {u'type': u'string'}, u'com.example.version': {u'description': u'Version', u'minimum': 0, u'type': u'integer'}}, u'required': [u'com.example.is-beta', u'com.example.version'], u'title': u'Dockerfile schema', u'type': u'object'} On instance: {u'com.example.release-date': u'2015-02-12', u'com.example.version': 1, u'vendor': u'ACME Incorporated'}
For the moment you can install from this repository using pip
.
git clone git@github.com:garethr/docker-label-inspector.git cd docker-label-inspector pip install .
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4