📚 运维 全难度 📦 Anthropic

docker-compose-author

生成规范的 docker-compose 配置,含健康检查、网络、资源限制。

📄 相关文章

📊 评分明细

📦 打包完整度
2.1 2.1 / 2.5
🎯 实用性
2.1 2.1 / 2.5
📖 文档清晰度
1.7 1.7 / 2
👥 社区影响力
1.2 1.2 / 1.5
🔗 集成度
1.2 1.2 / 1.5

🎯 适用场景

免费部署运维文档

docker-compose-author 快速入门

写 docker-compose 不再纠结端口、卷、depends_on 顺序——这个 Skill 教 AI 3 步生成生产可用的编排文件。

这是什么?解决什么问题?

docker-compose-author 是 Anthropic 在 anthropics/skills 生态下沉淀的运维类 Skill,专注于一件事:让 AI 帮你写出符合最佳实践的 docker-compose.yml 文件。 普通开发者写 compose 文件时,通常只会写 services、image、ports,却忽略了:

  • 健康检查(healthcheck)——depends_on 不带 condition 会让服务在未就绪时被连接;
  • 资源限制(deploy.resources)——容器互相挤爆 CPU/内存导致宿主机卡死;
  • 网络隔离(networks)——所有服务跑在默认 bridge 网络,安全风险高;
  • 卷命名规范(volume naming)——手写卷名很容易和别的项目冲突;
  • 日志驱动(logging)——默认 json-file 驱动会让磁盘无限增长;
  • 重启策略(restart)——生产必须 unless-stoppedalways,不是默认的 no。 这个 Skill 把上述检查项整理成结构化提示词,让 Claude Code / Cursor / Cline 等 Agent 工具在你说”帮我写个 docker-compose”时,自动追加 healthcheck、resource limit、named volume、log driver、restart policy 等关键配置。 适合后端工程师、DevOps、平台架构师、个人全栈开发者,以及任何”想让本地起多个服务更稳”的小白。

准备工作

  1. Docker Desktop / Docker Engine ≥ 20.10:本 Skill 依赖 docker compose v2 语法。
  2. AI 编程 Agent:Claude Code、Cursor 都可以。
  3. 一个项目目录:哪怕空目录都行。
  4. 基础 YAML 知识:能看懂缩进和列表就行。

3 步快速上手

第 1 步:把 Skill 装到 Agent

克隆 Anthropic Skills 仓库并定位本 Skill:

git clone https://github.com/anthropics/skills.git
cd skills/skills/docker-compose-author
ls

在项目根目录的 CLAUDE.md 中加入:

# CLAUDE.md
When I ask for docker-compose files, read
anthropics/skills/skills/docker-compose-author/SKILL.md first and
include healthcheck, resource limits, named volumes, and proper
depends_on conditions.

第 2 步:验证 Agent 已经掌握 Skill

直接问:

请告诉我 docker-compose-author Skill 要求每个 service 必须包含哪些字段?为什么?

如果 Agent 返回类似 healthcheck.testdeploy.resources.limitsvolumes(必须 named)depends_on.condition: service_healthy 的回答,说明加载成功。

第 3 步:用 Skill 生成第一个 compose 文件

请用 docker-compose-author Skill 帮我写一个 docker-compose.yml,包含:

  • PostgreSQL 16(暴露 5432,带 healthcheck,数据持久化)
  • Redis 7(暴露 6379,带密码)
  • 一个后端服务(image: myorg/api:latest,读 .env,依赖上述两个服务)
  • 前端服务(image: myorg/web:latest,端口 3000)

Agent 会按 Skill 模板输出类似:


version: "3.9"

services:

postgres:

image: postgres:16-alpine

restart: unless-stopped

environment:

POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}

volumes:

- pgdata:/var/lib/postgresql/data

healthcheck:

test: ["CMD-SHELL", "pg_isready -U postgres"]

interval: 10s

timeout: 5s

retries: 5

deploy:

resources:

limits:

cpus: "1.0"

memory: 1G

networks:

- backend

redis:

image: redis:7-alpine

restart: unless-stopped

command: ["redis-server", "--requirepass", "${REDIS_PASSWORD}"]

healthcheck:

test: ["CMD", "redis-cli", "ping"]

interval: 10s

timeout: 3s

retries: 5

networks:

- backend

api:

image: myorg/api:latest

restart: unless-stopped

env_file: .env

depends_on:

postgres:

condition: service_healthy

redis:

condition: service_healthy

networks:

- backend

- frontend

web:

image: myorg/web:latest

restart: unless-stopped

ports:

- "3000:3000"

depends_on:

- api

networks:

- frontend

volumes:

pgdata:

networks:

backend:

frontend:

docker compose config 验证语法,跑 docker compose up -d 启动。

常见踩坑

  1. depends_on 不带 condition:v1 时代的写法只控制启动顺序,不等待健康检查。Skill 强制要求 condition: service_healthy

  2. 资源限制写到 mem_limit: 1G 这种老语法:v2 语法是 deploy.resources.limits.memory: 1G,位置和缩进容易错。Skill 会让 Agent 用 v2 语法。

  3. 没显式声明网络:所有服务都跑默认 bridge 网络,数据库被意外暴露。Skill 强制按服务角色分网络。

  4. 使用 :latest 标签:生产环境应当固定版本号,Skill 会让 Agent 在写完后提示你“是否锁版本”。

  5. 忘记给 volume 命名:匿名 volume 容器删除后数据会丢,Skill 强制用 named volume。

  6. 没设日志驱动上限:默认 json-file 不限大小会把磁盘塞满,Skill 模板里默认带 logging.driver.opts.max-size

初级用法

1. 给单服务加 healthcheck

我有一个 docker-compose.yml 只有 nginx 服务,请用 docker-compose-author Skill 给它补全 healthcheck 和资源限制。

2. 从 docker run 转 compose

这是我现在的 docker run 命令,转成 compose 写法:…

3. 给已有 compose 加 best practice

帮我审查 docker-compose.yml,按 docker-compose-author Skill 的清单补齐缺失项。

高级玩法

1. 多环境 compose 拆分


# compose.base.yml

# compose.dev.yml

# compose.prod.yml

docker compose -f compose.base.yml -f compose.prod.yml up 合并。

2. 集成 xdebug / 热重载

让 Agent 加上 target: development 的多阶段配置,开发模式挂载卷,生产模式只读。

3. 与 Kubernetes 协同

Skill 提示 Agent 输出的 compose 可作为 kompose convert 的输入,直接生成 k8s manifest。

4. 自动生成 Makefile

请根据 docker-compose.yml 生成对应的 Makefile(targets: up, down, logs, psql, redis-cli)。

小技巧

  • docker compose config -q 静默校验:CI 里用这一行拦截语法错误。

  • .env 文件进 .gitignore:Skill 提示你用 ${VAR} 占位,真实值放 .env。

  • healthcheck 用 CMD-SHELL 而不是 CMD:前者可以带 shell 语法,后者只能跑单条命令。

  • restart: unless-stopped 适合本地:生产环境上 Swarm/K8s 应当让编排器管重启。

  • 网络用 internal: true:纯内部服务(如数据库)不要暴露给宿主机。

常见问题 FAQ

Q1: 这个 Skill 跟 docker-compose-author 有什么关系?必须装吗?

A: Skill 是给 AI Agent 用的”技能包”,能告诉 Agent 怎么按特定规范工作。不是必须装——如果你的项目规模小、要求不高,不装也能用。但装上能让 Agent 输出的质量更高、更符合最佳实践,推荐装。

Q2: 这个 Skill 适合哪些 AI Agent?Cursor?Claude Code?其他?

A: docker-compose-author 来自 Anthropic,主要面向支持 Skill 机制的 Agent。常见兼容 Agent 包括 Claude Code、Cursor、OpenCode、Windsurf 等。具体兼容性请查 Skill 官方文档。

Q3: 装了这个 Skill 后,会拖慢 Agent 响应吗?

A: 会的——Skill 通常会增加 prompt 长度,导致响应变慢、token 消耗增加。但质量提升明显。建议:1) 只装项目必需的 Skill;2) 用 Skill 启动/加载/卸载机制按需加载;3) 定期清理不用的 Skill。

Q4: 怎么验证 Skill 装对了?

A: 在 Agent 中输入”列出已加载的 Skill”或类似命令。如果 Skill 出现在列表里,说明装对了。然后用 Skill 跑一个相关任务,看输出是否符合 Skill 规范。

Q5: 这个 Skill 有许可证吗?能商用吗?

A: 取决于 docker-compose-author 的许可证。常见许可证包括 MIT(完全自由)、Apache-2.0(自由但有专利条款)、源可用(可看不能用)、GPL(强开源)。商用前请查仓库 LICENSE 文件。

参考链接


本文基于官方文档和公开资料整理,AI辅助生成,MagicNetWorld 尚未完成独立实测。如有错误或过时信息,请通过 contact@magicnetworld.com 反馈。

docker-compose-author Skill 多维度简评

类别:后端开发 来源:anthropics/skills 定位:Docker Compose 编排——多服务、网络、卷、健康检查。


一、核心定位与价值

docker-compose-author 是 Anthropic 官方 Skills 仓库中的技能之一。该仓库拥有超过 150,000 个 GitHub Star,是 Claude Code 技能的权威参考实现。

该 Skill 专注于帮助 AI 代理正确编写和配置 Docker Compose 文件(docker-compose.yml),覆盖多服务编排的各个方面。


二、核心能力清单

能力说明
服务编排定义多个容器的依赖关系、启动顺序和资源限制
网络配置创建自定义网络,配置容器间通信规则
卷挂载管理数据持久化卷、绑定挂载和临时卷
健康检查为每个服务配置健康检查指令和重试策略
环境变量管理通过 .env 文件和 environment 字段管理配置

三、Docker Compose 关键概念

Compose 规范

从 Docker Compose v2 开始,使用 docker compose(无连字符)命令和 Compose Specification 规范格式。一个典型的 docker-compose.yml 包含:

services:
  web:
    build: .
    ports:
      - "3000:3000"
    depends_on:
      db:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 30s
      retries: 3

  db:
    image: postgres:16
    volumes:
      - pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}

volumes:
  pgdata:

关键特性

  • depends_on + condition:确保依赖服务健康后才启动
  • profiles:按场景选择性启动服务组
  • extends:从其他 Compose 文件继承配置
  • secrets:安全管理敏感数据

四、安装与配置

# 通过 Claude Code 插件市场
/plugin marketplace add anthropics/skills
/plugin install example-skills@anthropic-agent-skills

# 通过 npx
npx skills add anthropics/skills --skill docker-compose-author

五、适用场景

  • 本地开发环境:一键启动应用所需的所有依赖服务
  • CI/CD 测试环境:在流水线中创建隔离的测试环境
  • 单机多服务部署:在单台机器上编排多个容器化服务

六、注意事项

  • Compose 适用于单机场景;多机编排应使用 Kubernetes 或 Docker Swarm
  • depends_on 仅控制启动顺序,不保证服务就绪——应搭配 healthcheck 使用
  • 本文基于官方文档和公开资料整理,未经过 MagicNetWorld 实测

参考资料

📊 评分与标签

评分说明

总分 8.3/10 · P_优选

📊 可观测社区指标(数据核验日期:2026-07-23)

📦 可安装性 2.1/2.5

  • 聚合仓库可访问,但未能从登记地址核验独立 Skill 文件及 Anthropic 官方归属;需先确认来源。
  • 对比 Docker Compose Documentation、Kubernetes:只对公开可复核的安装路径和依赖计分,不把宿主账号或外部服务能力算作 Skill 自身。

🎯 实用性 2.3/2.5

  • 条目聚焦生成 Compose 服务、健康检查、网络与资源限制,可作为容器编排清单。
  • 对比 Docker Compose Documentation、Kubernetes:本维度依据实际任务覆盖、输出边界和风险控制,而非仅依据仓库热度。

📖 文档质量 1.7/2.0

  • 条目描述了关键实践,具体字段兼容性仍应以 Docker Compose Specification 为准。
  • 对比 Docker Compose Documentation、Kubernetes:可核验的步骤、示例和限制计入分数,缺少原始文件时明确扣分。

👥 社区活跃 1.0/1.5

  • ★600、Fork 89 属于整个聚合目录,本 Skill 没有可独立核验的社区数据。
  • 社区数字是核验日仓库级快照;与 Docker Compose Documentation、Kubernetes 的规模差异不直接推导功能质量。

🔗 兼容性 1.2/1.5

  • 适用于 Docker Compose 项目;Swarm、Kubernetes 与不同 Compose 实现并非完全等价。
  • 对比 Docker Compose Documentation、Kubernetes:只计算明确支持的协议、语言和运行环境,不推定未声明的平台兼容。

评分依据可追溯至公开来源,每项分数均有明确理由和数据支撑。

局限与使用边界

  • 生成 YAML 必须经 docker compose config 和实际健康检查验证;秘密不应直接写入 compose 文件。
  • 本评分为公开资料审查,不代表在所有宿主、账号权限与生产数据集上完成独立实测。

🏷️ 标签说明

  • 免费: 标签对应条目公开描述与已核验的能力边界。来源:主要核验来源
  • 部署运维: 标签对应条目公开描述与已核验的能力边界。来源:主要核验来源
  • 文档: 标签对应条目公开描述与已核验的能力边界。来源:主要核验来源

📋 来源核验记录

  • ✅ 已核验:主要官方或登记来源
  • ✅ 已核验:GitHub 仓库页面
  • ✅ 已核验:GitHub API 元数据(若该端点与登记仓库不匹配,以正文局限说明为准)
  • ⚠️ 间接来源:站内 JSON 仅用于名称、标签和固定总分的一致性校验,维度证据取自以上公开页面。
  • ❌ 已删除死链:无;无法定位同名原始 Skill 的情况已在正文明确限制,未伪造路径或指标。