Hadolint 是Haskell 实现的 Dockerfile linter,现依据Docker 官网推荐的 Dockerfile 最佳实践。
安装:
alias hadolint='docker run --rm -i hub.baidubce.com/duanshuaixing/hadolint/hadolint:latest-alpine < '
[root@allinone ~]# hadolint Dockerfile /dev/stdin:1 DL3006 Always tag the version of an image explicitly
可以使用 --ignore 参数忽略指定的问题,如果是固定配置,可以使用 -c 参数指定配置文件。例如下面的配置文件中,指定了忽略的问题列表以及可信的镜像仓库:其检测范围包括在 README 有非常详细的描述,并在连接中给出了建议。
ignored:
- DL3000
- SC1010
trustedRegistries:
- docker.io
- my-company.com:5000
hadolint 提供了很多集成选项,可以集成到 Jenkins、Gitlab 等自动化流程中使用,还能在 vim、VSCode、Atom 等编辑器中集成,从而在开发阶段就对 Dockerfile 进行检查,提高镜像质量。
README:https://github.com/hadolint/hadolint/blob/master/README.md
集成选项:https://github.com/hadolint/hadolint/blob/master/docs/INTEGRATION.md