Appearance
Everything Claude Code Docker Patterns Skill 是专为本地开发、容器安全、网络与多服务编排场景设计的生产级 Docker/Docker Compose 最佳实践集合。它帮助开发者规范化本地开发环境、提升容器安全、优化服务网络和数据卷管理,并支持一键迁移到生产环境。Skill 可与 Claude Code 等 AI 编程助手协作,自动生成、审查和修复 Docker 相关配置,极大提升容器化开发效率与安全性。
Everything Claude Code Docker Patterns Skill:本地开发、容器安全、网络与多服务编排最佳实践
在现代开发流程中,容器化已成为本地开发、测试和生产部署的主流方式。但实际操作中,开发者常常遇到环境不一致、网络配置混乱、数据丢失或安全隐患等问题。Everything Claude Code Docker Patterns Skill(下称 docker-patterns Skill)正是为了解决这些痛点而设计,系统性地将生产级 Docker/Docker Compose 模式集成到 AI 编程助手(如 Claude Code、Codex、Cursor)的自动化工作流中。
本指南将详细介绍 docker-patterns Skill 的激活场景、实际使用流程、输出示例,以及如何与其他 Agent/Skill 协作,助你在项目中高效、安全地落地容器化开发。
docker-patterns Skill 能解决什么问题?
传统做法的痛点:
- 手写 Docker Compose 文件容易遗漏安全、网络、数据卷等细节,导致环境不一致或安全漏洞。
- 多服务协作时,网络和服务发现配置复杂,易出错。
- 本地开发与生产环境镜像分离不清,导致部署失败或调试困难。
- 卷挂载和数据持久化策略混乱,开发数据丢失或污染生产环境。
- 容器权限、密钥管理不到位,产生安全隐患。
docker-patterns Skill 的优势:
- 自动生成本地开发与生产环境分离的 Compose 配置,内置多阶段 Dockerfile 模板。
- 标准化网络、服务发现、卷管理、安全加固等模式,减少人为失误。
- 内置常见多服务(如 app、db、redis、mailpit)协作范式,适配主流开发框架。
- 输出安全、可维护、易调试的 Dockerfile/Compose 配置,并能自动修复常见反模式。
- 支持与 Code Reviewer Agent、Security Reviewer Agent 等协作,自动审查和优化容器配置。
何时激活 docker-patterns Skill?
- 新项目初始化,需快速搭建本地多服务开发环境时
- 现有项目迁移到容器化开发/部署流程时
- 遇到容器网络、卷挂载、依赖初始化等疑难杂症需要诊断时
- 代码审查、CI/CD 流程中对 Dockerfile/Compose 进行安全和规范性检查时
- 需要将开发环境与生产环境配置解耦,提升可维护性和安全性时
实战操作流程(Step by Step)
1. 触发 Skill:明确目标和场景
在 Claude Code、Cursor 等 AI 编程助手中,输入类似如下指令即可自动触发 docker-patterns Skill:
为本项目生成支持热更新的本地开发 Docker Compose 配置,并兼顾生产环境安全。或
请帮我分析当前 docker-compose.yml 是否存在安全隐患和反模式,并给出修正建议。2. 自动生成标准化 Compose 配置
Skill 会根据项目类型和依赖,生成如下结构的 Compose 配置:
yaml
# docker-compose.yml
services:
app:
build:
context: .
target: dev
ports:
- "3000:3000"
volumes:
- .:/app
- /app/node_modules
environment:
- DATABASE_URL=postgres://postgres:postgres@db:5432/app_dev
- REDIS_URL=redis://redis:6379/0
- NODE_ENV=development
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
command: npm run dev
db:
image: postgres:16-alpine
ports:
- "5432:5432"
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: app_dev
volumes:
- pgdata:/var/lib/postgresql/data
- ./scripts/init-db.sql:/docker-entrypoint-initdb.d/init.sql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 3s
retries: 5
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redisdata:/data
mailpit:
image: axllent/mailpit
ports:
- "8025:8025"
- "1025:1025"
volumes:
pgdata:
redisdata:3. 多阶段 Dockerfile 自动区分开发与生产
Skill 会建议并生成多阶段 Dockerfile,确保开发环境支持热更新和调试,生产环境镜像最小化、安全加固:
dockerfile
# Stage: dev
FROM node:22-alpine AS dev
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
EXPOSE 3000
CMD ["npm", "run", "dev"]
# Stage: production
FROM node:22-alpine AS production
WORKDIR /app
RUN addgroup -g 1001 -S appgroup && adduser -S appuser -u 1001
USER appuser
COPY --from=build --chown=appuser:appgroup /app/dist ./dist
COPY --from=build --chown=appuser:appgroup /app/node_modules ./node_modules
COPY --from=build --chown=appuser:appgroup /app/package.json ./
ENV NODE_ENV=production
EXPOSE 3000
HEALTHCHECK --interval=30s --timeout=3s CMD wget -qO- http://localhost:3000/health || exit 1
CMD ["node", "dist/server.js"]4. 自动生成 override、prod 配置及一键切换命令
Skill 会输出开发、生产环境的 override 配置和启动命令:
yaml
# docker-compose.override.yml
services:
app:
environment:
- DEBUG=app:*
- LOG_LEVEL=debug
ports:
- "9229:9229" # Node.js debugger
# docker-compose.prod.yml
services:
app:
build:
target: production
restart: always
deploy:
resources:
limits:
cpus: "1.0"
memory: 512M启动开发环境:
bash
docker compose up启动生产环境:
bash
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d5. 网络与服务发现自动配置
Skill 会自动为多服务项目配置合适的网络模式、服务名解析和端口暴露策略。例如:
- 服务间通过 service name 自动解析(如
db、redis) - 生产环境限制端口暴露,仅允许内部访问
- 支持自定义网络隔离前后端、API、数据库
6. 卷挂载和数据持久化策略建议
Skill 会根据实际需求自动区分 bind mount、named volume、anonymous volume,确保开发热更新、依赖隔离和数据安全。例如:
yaml
volumes:
pgdata: # 持久化数据库
redisdata: # 持久化 Redisyaml
services:
app:
volumes:
- .:/app # 代码热更新
- /app/node_modules # 隔离依赖
- /app/.next # 隔离构建缓存7. 容器安全加固与密钥管理
Skill 会自动输出如下安全建议与配置:
- Dockerfile 只用具体 tag(如
node:22.12-alpine3.20),禁止:latest - 强制非 root 用户运行
- Compose 配置中开启
no-new-privileges:true、read_only: true、cap_drop: ALL等安全选项 - 密钥通过
.env文件或 Docker secrets 注入,禁止写入镜像层
8. 典型输出示例
Skill 生成的完整输出会包含:
- 标准化的
docker-compose.yml、Dockerfile、.dockerignore文件 - 生产/开发环境切换命令
- 容器安全、网络、数据卷配置建议
- 反模式检测与修正建议
9. 常见调试与维护命令
Skill 会输出一组常用调试命令,助你快速排查问题:
bash
docker compose logs -f app
docker compose exec app sh
docker compose exec db psql -U postgres
docker compose up --build
docker compose down -v
docker compose exec app nslookup db
docker network inspect <project>_default与其他 Agent/Skill 的协作关系
- 可与 Code Reviewer Agent 联动,自动审查 Dockerfile/Compose 配置的规范性和安全性
- 搭配 Security Reviewer Agent 检查密钥泄漏、权限配置等安全隐患
- 与 Deployment Patterns Skill 配合,实现从本地开发到 CI/CD 自动部署的无缝衔接
- 可结合 Hooks 自动化体系,在 PreToolUse/Stop 阶段自动检测和修复反模式
典型输出示例
你可以在 Claude Code 中直接请求“生成本地开发和生产分离的 Docker Compose 配置”,Skill 会自动输出完整的 Compose 文件、多阶段 Dockerfile、安全建议及常用调试命令,确保环境一致性和安全性。
FAQ
Q: docker-patterns Skill 能自动识别并修复哪些常见 Docker 反模式?
A: Skill 能检测如使用 :latest tag、容器运行 root 用户、数据未挂载卷、密钥硬编码、单体大容器等反模式,并给出修正建议。
Q: 如何让 Skill 适配我的项目技术栈(如 Node.js、Python、Java)?
A: Skill 会根据项目依赖自动调整 Compose 和 Dockerfile 模板,支持主流语言和框架,同时可与 Codebase Onboarding Skill 联动分析项目结构。
Q: 生产环境还能用 docker compose 吗?
A: Skill 推荐本地开发用 docker compose,生产多服务部署建议用 Kubernetes、ECS 或 Swarm 等编排系统,并自动输出迁移建议。