Claude容器与MSSQL数据库工具

一个安全的Podman容器,用于运行Claude代码,预配置了MSSQL数据库工具,提供网络和文件系统隔离。

  • by AuBi-One
  • Shell
  • 本地部署
  • 更新于
在 GitHub 查看 aubi-one-david/claude-container-mssql

使用说明

带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

与您的项目集成

  1. 你的项目 .claude/ 目录已装载并具有优先权
  2. 现有的钩子、代理和提示会自动工作
  3. 通过以下方式添加特定于项目的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 只有容器隔离才是安全的

不要将此容器与不受信任的代码一起使用 -无许可模式可以执行任意命令。

许可证

麻省理工学院