mcpField
D
docker-compose-skill

docker-compose-skill

github.com/scientiacapital云与 DevOps2873 次安装3 周前更新
代码仓库

关于 docker-compose-skill

使用 Docker Compose 搭建和管理本地多服务开发环境的 Skill。提供常见服务的 Compose 模板,以及健康检查、环境变量、热重载和服务命令的指导。

主要功能

  1. 01常见服务的 Compose 模板
  2. 02数据库与缓存的健康检查
  3. 03通过 .env 管理环境变量
  4. 04使用卷挂载实现热重载
  5. 05服务日志与生命周期命令指导

适用场景

  1. 01启动本地数据库和缓存组合
  2. 02为依赖服务配置健康检查
  3. 03挂载应用代码以启用热重载
  4. 04停止服务并移除数据卷

安装

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

$npx skills add https://github.com/scientiacapital/skills --skill docker-compose-skill

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

包含的文件

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

config.json
reference/
compose-patterns.md
dev-workflow.md
networking.md
services.md

详细介绍

使用 Docker Compose 设置和管理本地多服务开发环境。提供 compose.yml 模板、健康检查、热重载,以及 PostgreSQL、Redis、MongoDB 和其他服务的必要命令。

<quick_start>

  1. 根据你的技术栈(Postgres、Redis 等)复制下方的 compose.yml 模板
  2. 创建包含数据库凭据的 .env 文件
  3. 运行 docker compose up -d 启动服务
  4. 使用 docker compose logs -f 监控服务 </quick_start>

<success_criteria>

  • 所有服务均可通过 docker compose up -d 启动并达到健康状态
  • 为每个数据库/缓存服务配置健康检查
  • 将环境变量移至 .env 文件(compose.yml 中不硬编码机密信息)
  • 通过卷挂载实现应用代码热重载
  • docker compose down -v 可彻底移除所有容器和卷 </success_criteria>

Docker Compose 技能

使用 Docker Compose 搭建本地多服务开发环境。

快速入门

常见服务
服务镜像默认端口
PostgreSQLpostgres:16-alpine5432
Redisredis:7-alpine6379
MongoDBmongo:727017
MySQLmysql:83306
基础 compose.yml
services:
  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: ${DB_USER:-app}
      POSTGRES_PASSWORD: ${DB_PASSWORD:-secret}
      POSTGRES_DB: ${DB_NAME:-app_dev}
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-app}"]
      interval: 5s
      timeout: 5s
      retries: 5

  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data

volumes:
  postgres_data:
  redis_data:

必要命令

# Start services (detached)
docker compose up -d

# Start with logs visible
docker compose up

# View logs
docker compose logs -f [service]

# Shell into container
docker compose exec db psql -U app

# Stop and remove containers
docker compose down

# Stop and remove volumes (full reset)
docker compose down -v

# Rebuild without cache
docker compose build --no-cache

环境变量

在项目根目录创建 .env 文件:

# .env
DB_USER=app
DB_PASSWORD=secret
DB_NAME=myapp_dev
REDIS_URL=redis://localhost:6379

在 compose.yml 中引用:

environment:
  POSTGRES_USER: ${DB_USER:-app}

健康检查

始终为服务依赖项添加健康检查:

services:
  db:
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-app}"]
      interval: 5s
      timeout: 5s
      retries: 5

  app:
    depends_on:
      db:
        condition: service_healthy

热重载设置

挂载源代码以进行开发:

services:
  app:
    build: .
    volumes:
      - .:/app                    # Source code
      - /app/node_modules         # Preserve node_modules
    environment:
      - NODE_ENV=development

可选服务的配置文件

services:
  mailhog:
    image: mailhog/mailhog
    profiles: ["mail"]
    ports:
      - "8025:8025"

# Start with: docker compose --profile mail up

参考文件

  • reference/compose-patterns.md - 常见的 compose 文件模式
  • reference/services.md - 数据库、缓存和队列服务配置
  • reference/networking.md - 端口、网络和卷
  • reference/dev-workflow.md - 开发工作流命令

输出结果旁文件

最后一步,将内容写入 ~/.claude/skill-analytics/last-outcome-docker-compose-skill.json:

{"ts":"[UTC ISO8601]","skill":"docker-compose-skill","version":"1.0.0","variant":"default",
 "status":"[success|partial|error]","runtime_ms":[estimated ms from start],
 "metrics":{"services_configured":[n],"containers_running":[n]},
 "error":null,"session_id":"[YYYY-MM-DD]"}

如果某些阶段失败但仍生成了结果,请使用状态 "partial"。只有在未生成任何输出时才使用 "error"。

评论

支持 Markdown