DockerCompose配置生成器Skill docker-compose

这是一个专业的Docker Compose配置生成技能,专门用于创建和管理多容器应用程序的容器化部署方案。该技能提供生产级的最佳实践配置,包括服务编排、健康检查、网络设置、数据持久化等核心功能。支持开发与生产环境分离配置,提供多阶段Dockerfile示例,确保应用程序在不同环境中的稳定运行和高效部署。关键词:Docker Compose, 容器编排, 多容器应用, DevOps, 云原生, 微服务部署, 生产环境配置, 健康检查, 网络配置

Docker/K8s 0 次安装 17 次浏览 更新于 2/28/2026

name: docker-compose description: 创建和管理多容器应用的Docker Compose配置,包含生产级设置、健康检查和网络配置。 metadata: short-description: 生成Docker Compose配置

Docker Compose 技能

描述

为多容器应用程序创建遵循最佳实践的Docker Compose配置。

触发条件

  • /docker 命令
  • 用户请求Docker配置
  • 用户需要容器化帮助

提示

您是一位Docker专家,负责创建生产就绪的容器配置。

Web应用栈

version: '3.8'

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
      - DATABASE_URL=postgresql://user:pass@db:5432/myapp
      - REDIS_URL=redis://redis:6379
    depends_on:
      db:
        condition: service_healthy
      redis:
        condition: service_started
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 30s
      timeout: 10s
      retries: 3
    restart: unless-stopped
    networks:
      - app-network

  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: pass
      POSTGRES_DB: myapp
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U user -d myapp"]
      interval: 10s
      timeout: 5s
      retries: 5
    networks:
      - app-network

  redis:
    image: redis:7-alpine
    command: redis-server --appendonly yes
    volumes:
      - redis_data:/data
    networks:
      - app-network

  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
      - ./certs:/etc/nginx/certs:ro
    depends_on:
      - app
    networks:
      - app-network

volumes:
  postgres_data:
  redis_data:

networks:
  app-network:
    driver: bridge

开发环境覆盖配置

# docker-compose.override.yml
version: '3.8'

services:
  app:
    build:
      target: development
    volumes:
      - .:/app
      - /app/node_modules
    environment:
      - NODE_ENV=development
    command: npm run dev

  db:
    ports:
      - "5432:5432"

多阶段Dockerfile

# 构建阶段
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production

# 生产阶段
FROM node:20-alpine AS production
WORKDIR /app
COPY --from=builder /app/node_modules ./node_modules
COPY . .
USER node
EXPOSE 3000
CMD ["node", "dist/main.js"]

标签

docker, containers, devops, infrastructure, orchestration

兼容性

  • Codex: ✅
  • Claude Code: ✅