mcpField
D
docker-development

docker-development

github.com/borghei云与 DevOps1.0k65 次安装1 周前更新
代码仓库

关于 docker-development

用于分析 Dockerfile 和 docker-compose 配置,检查安全、优化及配置问题,适合审查容器构建和服务设置的开发者与团队。提供独立分析工具及适用于 CI 的 JSON 输出。

主要功能

  1. 01检查 Dockerfile 安全与最佳实践
  2. 02分析层、缓存和构建阶段
  3. 03验证 Compose 结构与依赖
  4. 04检查端口、卷和网络
  5. 05为 CI 输出 JSON

适用场景

  1. 01上线前审查 Dockerfile
  2. 02查找明文密钥或 root 用户风险
  3. 03验证 Compose 依赖和端口
  4. 04在 CI 中运行容器检查

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/borghei/claude-skills --skill docker-development

安装后在 Claude Code 中输入/docker-development确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

examples/
docker-compose.sample.yml
Dockerfile.sample
references/
docker-best-practices.md
scripts/
compose_validator.py
dockerfile_analyzer.py

详细介绍

Docker 开发

类别: 工程 领域: 容器开发与优化

概述

Docker 开发技能可自动分析 Dockerfile 和 docker-compose 配置。它可以识别层优化机会、安全问题、最佳实践违规,以及 Compose 服务配置错误。使用此技能可在团队中贯彻容器标准,并在问题进入生产环境之前发现它们。

请先确认

运行分析之前,请确认以下输入。如果有任何一项未知或含糊不清,请先询问——不要自行假设:

  • 目标文件 — 要分析哪个 Dockerfile 或 docker-compose.yml(决定设置 --file 的值以及运行哪个工具)
  • 关注重点 — 执行完整分析还是仅进行安全分析,以及是否检查端口冲突(决定设置 --security-only/--check-ports 的值)
  • 输出模式 — 面向人的可读输出还是用于 CI 的 JSON(决定设置 --format json 的值,以及是否让发现的问题阻止流水线)

停止规则:只询问对输出影响最大的 2-3 项。如果用户说“直接起草”,则继续操作,并在产物顶部列出你的假设。

快速开始

# Analyze a Dockerfile for best practices
python scripts/dockerfile_analyzer.py --file Dockerfile

# Analyze with JSON output
python scripts/dockerfile_analyzer.py --file Dockerfile --format json

# Validate a docker-compose file
python scripts/compose_validator.py --file docker-compose.yml

# Check for port conflicts across compose files
python scripts/compose_validator.py --file docker-compose.yml --check-ports

工具概览

dockerfile_analyzer.py

分析 Dockerfile 中的最佳实践、安全问题和优化机会。

功能说明
层优化检测不必要的层,并建议合并 RUN 语句
多阶段分析验证多阶段构建模式和最终镜像大小
安全扫描标记以 root 身份运行、使用 latest 标签以及暴露的机密信息
基础镜像检查建议使用更小的基础镜像(alpine、distroless、slim)
缓存优化识别会破坏 Docker 缓存的不佳层顺序
# Full analysis
python scripts/dockerfile_analyzer.py --file Dockerfile

# Security-focused scan
python scripts/dockerfile_analyzer.py --file Dockerfile --security-only

# JSON output for CI integration
python scripts/dockerfile_analyzer.py --file Dockerfile --format json
compose_validator.py

验证 docker-compose 文件的正确性、依赖问题和端口冲突。

功能说明
架构验证检查 Compose 文件结构和语法
依赖关系图验证 depends_on 链是否存在循环依赖
端口冲突检测识别重复的主机端口绑定
卷挂载检查验证卷路径和挂载配置
网络分析检查网络定义和服务连通性
# Full validation
python scripts/compose_validator.py --file docker-compose.yml

# Check port conflicts only
python scripts/compose_validator.py --file docker-compose.yml --check-ports

# JSON output
python scripts/compose_validator.py --file docker-compose.yml --format json

工作流

Dockerfile 审查工作流
  1. 分析 - 对目标 Dockerfile 运行 dockerfile_analyzer.py
  2. 审查发现的问题 - 优先解决严重安全问题(root 用户、机密信息)
  3. 优化层 - 合并 RUN 语句并重新排序,以提高缓存效率
  4. 验证基础镜像 - 尽可能切换到精简基础镜像
  5. 重新分析 - 确认改进并验证没有回归问题
Compose 验证工作流
  1. 验证结构 - 运行 compose_validator.py 检查语法和架构
  2. 检查依赖 - 检查服务依赖关系图,确认没有循环引用
  3. 审计端口 - 确保各服务之间没有主机端口冲突
  4. 审查卷 - 确认卷挂载正确且必要
  5. 审查网络 - 验证服务隔离和连通性
CI 集成工作流
# Example GitHub Actions step
- name: Docker Lint
  run: |
    python scripts/dockerfile_analyzer.py --file Dockerfile --format json > results.json
    python scripts/compose_validator.py --file docker-compose.yml --format json >> results.json

参考文档

常见模式速查

模式推荐不推荐
基础镜像FROM python:3.12-slimFROM python:latest
用户USER appuser以 root 身份运行
合并层RUN apt-get update && apt-get install -y pkg更新和安装分别使用 RUN
COPY 顺序先复制 requirements,再复制代码一次性复制所有内容
多阶段构建使用构建阶段 + 精简的运行时使用包含构建工具的单阶段
密钥使用构建密钥或运行时环境变量COPY .env . 或 ENV SECRET=value
健康检查HEALTHCHECK CMD curl -f http://localhost/未定义健康检查
.dockerignore包含 node_modules、.git 等没有 .dockerignore 文件
Compose 模式
模式推荐不推荐
重启策略restart: unless-stopped未设置重启策略
资源限制设置 deploy.resources.limits不限制资源
命名卷volumes: [db-data:/var/lib/postgresql]匿名卷
网络显式定义网络仅使用默认 bridge
环境变量env_file: .env在 compose 中内联密钥

评论

支持 Markdown