Files
xmwork/docker-compose.yml
T
gongzhiyong e5e5f939ee feat: 13 specialist agents + 3 team orchestration commands + az CLI + read-everywhere perms
Agents (10 new, total 13):
- python-fastapi-expert   — chat-gw / xiaoshou / CloudCost / kb-chat-python
- nestjs-expert           — gongdan backend
- react-frontend-expert   — xiaoshou/gongdan/casdoor web
- mcp-tools-architect     — chat-gw tool registry + auth pipeline
- celery-worker-expert    — CloudCost async tasks + beat
- security-auditor        — OWASP + secrets + auth (read-only)
- test-engineer           — coverage + flaky + e2e
- ci-cd-engineer          — 6 repos GitHub Actions
- azure-aca-expert        — ACA + Bicep + Key Vault
- docs-writer             — README / API / runbook

Team orchestration commands:
- /team-feature   — brainstorm → architect → split → parallel impl → QA
- /team-bug-fix   — triage → RCA → fix → regression test → review
- /team-refactor  — scope → test-first → batch → verify

Infrastructure:
- Dockerfile: add Azure CLI (native apt package)
- docker-compose.yml: mount ~/.azure and ~/.config/gh (read-only)
- scripts/enter.sh: banner showing agents/commands on start
- scripts/install-plugins.sh: helper to install superpowers/OMC/agent-browser

Permissions (.claude/settings.json):
- Full read access: az, gh, kubectl, psql SELECT, redis GET/KEYS/INFO
- Controlled write: gh pr create/comment, git push origin (not main)
- Hard deny: az */update|create|delete, gh pr merge, git push --force,
  alembic downgrade, kubectl apply/delete, sudo, rm -rf /

Docs:
- CLAUDE.md: new 'Agent 团队' + '权限模型' sections
- README.md: full agent roster + permission summary

Note: Dockerfile changed — run 'docker compose build' to install Azure CLI
2026-04-24 22:20:13 +08:00

62 lines
2.1 KiB
YAML

name: ai-ops
services:
claude-agent:
build:
context: .
dockerfile: Dockerfile
image: claude-agent-6repos:latest
container_name: claude-agent
hostname: claude-agent
stdin_open: true
tty: true
working_dir: /workspace
environment:
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-}
ANTHROPIC_MODEL: ${ANTHROPIC_MODEL:-claude-opus-4-7}
CLAUDE_CODE_USE_BEDROCK: ${CLAUDE_CODE_USE_BEDROCK:-}
AWS_REGION: ${AWS_REGION:-}
AWS_PROFILE: ${AWS_PROFILE:-}
GH_TOKEN: ${GH_TOKEN:-}
GITHUB_TOKEN: ${GH_TOKEN:-}
GIT_AUTHOR_NAME: ${GIT_AUTHOR_NAME:-Claude Agent}
GIT_AUTHOR_EMAIL: ${GIT_AUTHOR_EMAIL:-claude-agent@local}
GIT_COMMITTER_NAME: ${GIT_AUTHOR_NAME:-Claude Agent}
GIT_COMMITTER_EMAIL: ${GIT_AUTHOR_EMAIL:-claude-agent@local}
TERM: xterm-256color
volumes:
# REPOS_DIR 默认指向 ai-ops 的父目录;队友可在 .env 里改成自己的工作目录
- ${REPOS_DIR:-..}/chat-gw:/workspace/chat-gw
- ${REPOS_DIR:-..}/xiaoshou:/workspace/xiaoshou
- ${REPOS_DIR:-..}/gongdan:/workspace/gongdan
- ${REPOS_DIR:-..}/casdoor-internal:/workspace/casdoor-internal
- ${REPOS_DIR:-..}/CloudCostbrank:/workspace/CloudCostbrank
- ${REPOS_DIR:-..}/lobechat-enterprise:/workspace/lobechat-enterprise
- ./CLAUDE.md:/workspace/CLAUDE.md:ro
- ./.claude:/workspace/.claude
- claude-home:/root/.claude
- pip-cache:/root/.cache/pip
- go-cache:/root/go/pkg
- npm-cache:/root/.npm
- pnpm-store:/root/.local/share/pnpm/store
- bun-cache:/root/.bun/install/cache
- ${HOME}/.ssh:/root/.ssh:ro
- ${HOME}/.azure:/root/.azure:ro
- ${HOME}/.config/gh:/root/.config/gh:ro
# 注意:不要挂载 ~/.gitconfig —— 若宿主机没这个文件,Docker 会
# 把它自动创建为「空目录」,导致 git 报错。用上面 GIT_AUTHOR_*
# 环境变量就足够了。
healthcheck:
test: ["CMD", "claude", "--version"]
interval: 30s
timeout: 10s
retries: 3
volumes:
claude-home:
pip-cache:
go-cache:
npm-cache:
pnpm-store:
bun-cache: