带MSSQL(SQL Server)数据库工具的Claude容器
用于运行Claude Code的安全Podman容器 --dangerously-skip-permissions网络和文件系统隔离使无许可模式安全,同时提供预配置的MSSQL数据库工具。
特性
- 网络隔离:防火墙白名单阻止未经授权的网络访问
- MSSQL就绪:预先配置了ODBC驱动程序18、pyodbc和go sqlcmd
- MCP服务器:包括文件系统、MSSQL、内存和Brave搜索服务器
- 会话保持:完整的对话记录自动保存到git
- 简单的界面:用于所有操作的单个包装脚本
快速开始
# 1. Clone the repository
git clone https://github.com/aubi-one-david/claude-container.git
cd claude-container
# 2. Set environment variables
export ANTHROPIC_API_KEY="your-api-key"
# Optional: Database connection (only if using MSSQL features)
# export DB_SERVER="your-sql-server"
# export DB_USERNAME="sa"
# export DB_PASSWORD="your-password"
# export DB_DATABASE="your-database"
# 3. Build and run
./claude-run.sh --build
./claude-run.sh /path/to/your/project需求
- 波德曼 (或对Docker稍作修改)
- ANTHROPIC_API_键 环境变量
用法
基本命令
# Run Claude in current directory
./claude-run.sh
# Run in specific project
./claude-run.sh ../my-project
# Resume last session
./claude-run.sh -- --resume
# Get shell access to container
./claude-run.sh --shell
# Show status
./claude-run.sh --status容器内部命令
# Enable web access for research
claude-web on
# Disable web access
claude-web off
# Show container status
claude-status环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
ANTHROPIC_API_KEY | 是 | - | Claude API密钥 |
DB_SERVER | 无 | - | SQL Server主机名 |
DB_PORT | 没有 | 1433 | SQL Server端口 |
DB_USERNAME | 否 | - | 数据库用户名 |
DB_PASSWORD | 否 | - | 数据库密码 |
DB_DATABASE | 否 | - | 默认数据库 |
BRAVE_API_KEY | 否 | - | 勇敢搜索API密钥 |
CLAUDE_CPU_LIMIT | 无 | 4 | CPU内核限制 |
CLAUDE_MEM_LIMIT | 无 | 8g | 内存限制 |
CLAUDE_WEB_ACCESS | 否 | 关闭 | 初始web访问状态 |
CLAUDE_SHARE_AUTH | 否 | true | 共享主机的~/.claude OAuth凭据 |
网络安全
容器使用严格的防火墙运行,只允许:
始终允许:
- api.anthropic.com(Claude api)
- github(git操作)
- register.npmjs.org(npm包)
- pypi.org(Python包)
- 您的DB_SERVER(数据库)
可切换(通过 claude-web on):
- 所有HTTP/HTTPS流量
MCP服务器
四台MCP服务器已预先配置:
| 服务器 | 用途 | 需要环境变量 |
|---|---|---|
| 文件系统 | /workspace中的文件操作 | 无 |
| 微软SQL | 数据库查询 | DB_SERVER、DB_USENAME等。 |
| 记忆 | 跨会话知识 | 无 |
| 勇敢的搜索 | Web研究 | BRAVE_API_KEY(可选) |
会话保持
会话会自动保存到 .claude-sessions/ 在您的项目中:
.claude-sessions/
├── transcripts/
│ ├── 2026-01-13_143022.jsonl
│ └── 2026-01-14_091533.jsonl
└── index.json会话在容器退出时被提交到git。
项目结构
claude-container/
├── Containerfile # Container build definition
├── claude-run.sh # Main entry point
├── scripts/
│ ├── entrypoint.sh # Container entrypoint
│ ├── init-firewall.sh # Firewall setup
│ ├── claude-web # Web access toggle
│ ├── claude-status # Status display
│ └── session-save.sh # Session persistence hook
├── config/
│ ├── default-claude.md # Default Claude context
│ └── mcp.json # MCP server configuration
├── SPEC.md # Full specification
└── README.md # This file建筑
# Standard build
./claude-run.sh --build
# Clean rebuild
./claude-run.sh --build-no-cache
# Pull latest from GitHub Container Registry
podman pull ghcr.io/aubi-one-david/claude-container:latest与您的项目集成
- 你的项目
.claude/目录已装载并具有优先权 - 现有的钩子、代理和提示会自动工作
- 通过以下方式添加特定于项目的MCP服务器
.mcp.json在项目根目录中
项目结构示例:
my-project/
├── .claude/
│ ├── CLAUDE.md # Project context
│ ├── agents/ # Custom agents
│ ├── hooks/ # Project hooks
│ └── settings.json # Project settings
├── .claude-sessions/ # Auto-created for session storage
└── .mcp.json # Project-specific MCP servers安全说明
- 容器以非root用户身份运行
- 网络受到iptables防火墙的限制
- API密钥在运行时传递,而不是烘焙到图像中
--dangerously-skip-permissions只有容器隔离才是安全的
不要将此容器与不受信任的代码一起使用 -无许可模式可以执行任意命令。
许可证
麻省理工学院
