最近的Hadolint版本带来了许多修复,改进和对ARM64二进制文件的支持。
Hadolint是用Haskell编写的工具,可帮助开发人员执行编写Dockerfiles的官方最佳实践。除了性能和维护问题之外,非最佳 Dockerfile 可能更容易受到攻击。
Hadolint通过解析Dockerfile来构建AST,并在其上运行许多规则来检测任何不良使用情况。Hadolint 依靠 SpellCheck 来检查RUN语句中使用的 Bash 代码。
Hadolint 提供了一个 CLI 工具,有助于与 CI/CD
管道集成。您可以轻松运行 Hadolint,如以下所示:
hadolint Dockerfile
它的输出提供了与规则冲突对应的消息列表。对于其中的每一个冲突,hadolint 都指出了它出现的行号以及规则id,例如:DL4000: error: MAINTAINER is deprecated
。并分为六类不同的冲突级别来代表严重性:error
、warning
、info
、style
、ignore
和none
。
注意:规则代码以 DL 或 SC 为前缀。DL 前缀表示规则直接来自 Hadolint。SL 前缀意味着该规则来自 SpellCheck,它是 Hadolint 开箱即用的 shell 脚本的静态分析工具。您可以在此处找到规则的组合列表。
Hadolint CLI 支持许多忽略特定规则的选项,即 --ignore
;来更改故障严重性级别的阈值--failure-threshold
;并覆盖给定规则的默认严重性,例如--error
或 --info
。或者,您可以将所需的所有选项存储到 YAML 配置文件中。
Hadolint不仅可以通过命令行进行集成,也可以很容易地与Visual Studio Code或GitHub Actions集成。
Hadolint 可以在 macOS 上使用 brew
或在 Windows 上使用 scoop
来本地安装,也可以作为Docker镜像使用。如果您想快速检查您的Dockerfiles,您可以使用Hadolint的在线版本。
想了解更多信息请参考:Dockerfile Linter Hadolint ..