mcpField
D
docker-compose-setup

docker-compose-setup

github.com/pluginagentmarketplace云与 DevOps2209 次安装43 周前更新
代码仓库

关于 docker-compose-setup

docker-compose-setup 是用于设计 Docker Compose 配置的技能,面向需要编排开发或生产环境多容器应用的团队,涵盖服务依赖、环境管理与故障排查。

主要功能

  1. 01配置服务与依赖关系
  2. 02设置健康检查
  3. 03管理环境变量与配置覆盖
  4. 04使用服务配置档案
  5. 05验证并排查 Compose 文件

适用场景

  1. 01为开发或生产环境编写 Compose 文件
  2. 02分离开发与生产环境配置
  3. 03排查服务启动或健康检查错误

安装

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

$npx skills add https://github.com/pluginagentmarketplace/custom-plugin-docker --skill docker-compose-setup

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

包含的文件

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

assets/
config.yaml
docker-compose-template.yaml
schema.json
references/
GUIDE.md
PATTERNS.md
scripts/
validate.py

详细介绍

Docker Compose 设置技能

掌握 Docker Compose,以通过服务依赖、健康检查和环境管理来编排多容器应用。

用途

为开发和生产环境设计并配置 Docker Compose 文件,妥善编排服务。

参数

参数类型必填默认值描述
servicesarray否-要配置的服务列表
environmentenum否devdev/staging/prod
include_monitoringboolean否false添加监控服务

现代 Compose 文件(2024-2025)

注意:version 字段已弃用。直接从 services: 开始。

services:
  frontend:
    build:
      context: ./frontend
      target: production
    ports:
      - "80:80"
    depends_on:
      backend:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost/health"]
      interval: 30s
      timeout: 10s
      retries: 3
    restart: unless-stopped

  backend:
    build: ./backend
    expose:
      - "3000"
    environment:
      DATABASE_URL: postgres://user:${DB_PASSWORD}@database:5432/app
    depends_on:
      database:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 10s
      timeout: 5s
      retries: 5

  database:
    image: postgres:16-alpine
    volumes:
      - db_data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 5s
      timeout: 5s
      retries: 5

volumes:
  db_data:

环境管理

基础配置 + 覆盖配置模式
# docker-compose.yaml (base)
services:
  app:
    image: myapp:latest

# docker-compose.override.yaml (dev - auto-loaded)
services:
  app:
    build: .
    volumes:
      - ./src:/app/src
    environment:
      - DEBUG=true

# docker-compose.prod.yaml (production)
services:
  app:
    deploy:
      replicas: 3
    restart: always
# Development (loads override automatically)
docker compose up

# Production
docker compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d
环境变量
# .env file (auto-loaded)
DB_PASSWORD=secret123
APP_VERSION=1.2.3
# Using in compose
environment:
  - DB_PASSWORD=${DB_PASSWORD}
  - VERSION=${APP_VERSION:-latest}  # Default value

服务配置文件

services:
  app:
    image: myapp

  # Only with --profile debug
  debugger:
    image: debug-tools
    profiles:
      - debug

  # Only with --profile testing
  test-db:
    image: postgres:alpine
    profiles:
      - testing
docker compose up                     # app only
docker compose --profile debug up     # app + debugger

常用命令

# Start services
docker compose up -d

# Rebuild and start
docker compose up -d --build

# View logs
docker compose logs -f backend

# Scale service
docker compose up -d --scale backend=3

# Stop and clean
docker compose down -v

# Validate config
docker compose config

错误处理

常见错误
错误原因解决方案
undefined service缺少依赖项定义服务
yaml syntax error缩进错误修正 YAML
port already in use端口冲突更改端口
healthcheck failing服务尚未就绪增加 start_period
回退策略
  1. 使用 docker compose config 验证
  2. 逐个启动服务
  3. 使用 --no-deps 跳过依赖项

故障排除

调试清单
  • YAML 是否有效?docker compose config
  • 镜像是否可用?docker compose pull
  • 依赖项是否健康?检查健康检查配置
  • 是否已设置环境?检查 .env 文件
健康检查调试
# Check health status
docker inspect --format='{{json .State.Health}}' <container>

# View health logs
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' <container>

用法

Skill("docker-compose-setup")

相关技能

  • docker-networking
  • docker-volumes
  • docker-production

评论

支持 Markdown