SuperAPI AI 工具集

Docker Configuration Validator

部署与运维

查看项目

更新于 10-15 11:54

技能介绍

Docker Configuration Validator 是一个面向 Dockerfile 与 Docker Compose 文件的综合校验技能,目标是确保配置符合最佳实践、安全标准和现代语法要求。资料说明,当用户提出以下需求时会激活该技能:校验 Dockerfile 或 Docker Compose 文件、审查 Docker 配置的最佳实践、检查 Docker 安全问题、验证多阶段构建实现、审计 Docker 配置的生产就绪性、确保现代 Docker Compose 语法合规、修复 Docker 配置问题,或创建校验脚本与 CI/CD 集成。

技能的工作流分为多个阶段。第一阶段是初步评估,先明确校验范围(单个或多个 Dockerfile、Compose 文件、整个项目目录、特定关注点、生产或开发环境),理解安全合规级别、多阶段构建要求、性能约束、CI/CD 集成需求与是否需要自动化脚本,并检查 Hadolint(Dockerfile linter)、DCLint(Docker Compose linter)和 Docker CLI 是否可用。

第二阶段为 Dockerfile 校验。技能会定位项目中的 Dockerfile,若 Hadolint 可用则运行校验,包括 JSON 输出与失败阈值设置;若不可用,则执行手动校验并建议安装 Hadolint。手动检查覆盖基础镜像最佳实践(如不用 :latest 标签、固定版本、使用精简基础镜像、使用可信仓库)、多阶段构建验证(统计 FROM、命名阶段与 COPY --from 数量)、安全检查(USER 指令、最后 USER 非 root、无密钥、WORKDIR 绝对路径)、层优化(合并 RUN、清理包管理器缓存、COPY 放在 RUN 前、存在 .dockerignore)以及最佳实践(HEALTHCHECK、使用 WORKDIR 而非 cd、优先 COPY 而非 ADD、CMD/ENTRYPOINT 使用 JSON 表示法、包含标签)。检查发现的问题按严重、高、中、低四级分类,并给出修复建议。

第三阶段为 Docker Compose 校验。技能会定位 Compose 文件,重点检查是否包含已过时的 version 字段(现代 Compose v2.27.0+ 不再使用),运行内置语法校验 docker compose config --quiet,并在 DCLint 可用时执行 lint 与自动修复。手动检查覆盖镜像最佳实践、服务配置(重启策略、健康检查、资源限制、依赖关系)、网络(自定义网络、隔离、驱动)、卷与持久化(命名卷、驱动、绝对路径、敏感数据)、环境与密钥管理,以及安全项(非特权模式、能力配置、用户/组、只读根文件系统)。

第四阶段为多阶段构建深入检查,要求至少两个阶段、阶段均命名、使用 COPY --from 在阶段间传递产物、最终阶段使用最小基础镜像、不在最终阶段保留构建工具、最终阶段以非 root 用户运行。资料还列出 Node.js、Python、Go 的常见多阶段模式。第五阶段为安全审计,检查 USER 与权限、暴露的密钥、基础镜像漏洞和网络暴露。

第六阶段生成校验报告,包含执行摘要、每个文件的详细发现、问题分级、具体修复方案、优先建议、下一步行动以及工具安装、自动校验脚本和 CI/CD 集成模板。报告交付物可包括修复后的配置文件、自定义校验脚本、CI/CD 集成和文档,具体取决于用户是否请求。资料给出的工具安装示例包括通过 brew 安装 Hadolint 和 Trivy、通过 npm 全局安装 docker-compose-linter。

适用场景:需要在开发或生产环境中审查 Docker 配置的开发者、运维人员或安全审查人员,希望借助 linter 与手动检查结合的方式发现安全与语法问题,并接入 CI/CD 流程。限制方面:资料未提供该技能的收费方式、价格、平台支持、许可信息或具体运行环境要求;部分能力和效果取决于 Hadolint、DCLint、Docker CLI 等外部工具是否可用。