关于 docker-compose-skill
使用 Docker Compose 搭建和管理本地多服务开发环境的 Skill。提供常见服务的 Compose 模板,以及健康检查、环境变量、热重载和服务命令的指导。
主要功能
- 01常见服务的 Compose 模板
- 02数据库与缓存的健康检查
- 03通过 .env 管理环境变量
- 04使用卷挂载实现热重载
- 05服务日志与生命周期命令指导
适用场景
- 01启动本地数据库和缓存组合
- 02为依赖服务配置健康检查
- 03挂载应用代码以启用热重载
- 04停止服务并移除数据卷
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ scientiacapital/ skills --skill docker-compose-skill安装后在 Claude Code 中输入/docker-compose-skill确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
config.jsonreference/compose-patterns.mddev-workflow.mdnetworking.mdservices.md详细介绍
使用 Docker Compose 设置和管理本地多服务开发环境。提供 compose.yml 模板、健康检查、热重载,以及 PostgreSQL、Redis、MongoDB 和其他服务的必要命令。
<quick_start>
- 根据你的技术栈(Postgres、Redis 等)复制下方的 compose.yml 模板
- 创建包含数据库凭据的
.env文件 - 运行
docker compose up -d启动服务 - 使用
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 搭建本地多服务开发环境。
快速入门
常见服务
| 服务 | 镜像 | 默认端口 |
|---|---|---|
| PostgreSQL | postgres:16-alpine | 5432 |
| Redis | redis:7-alpine | 6379 |
| MongoDB | mongo:7 | 27017 |
| MySQL | mysql:8 | 3306 |
基础 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