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
62 lines
2.1 KiB
YAML
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:
|