Skip to content

[feat] WSL2 容器化代理部署 #6

Description

@visail

概述

在 WSL2 中以 Docker 容器运行 CSSwitch 翻译代理,实现 WSL2 内 Claude Science 推理走第三方 API(DeepSeek / 通义千问)。

AI 工具声明:本功能实现过程中使用了 Claude Code(AI 辅助编程工具)生成代码与文档。

变更清单

翻译代理

  • proxy/csswitch_proxy.py 新增 --host / CSSWITCH_BIND_HOST,支持绑 0.0.0.0

容器 (docker/)

  • Dockerfile — python:3.11-slim,非 root,零 pip 依赖
  • docker-compose.yml — 健康检查 + 自动重启 + 可选 Caddy TLS
  • .dockerignore / .env.example / Caddyfile

部署脚本

  • scripts/wsl2-deploy.ps1/stop.ps1/logs.ps1 — PowerShell 一键部署/停止/日志
  • scripts/wsl2-deploy.sh/stop.sh/logs.sh — WSL2 bash 脚本
  • scripts/docker-build.sh — 构建镜像
  • scripts/wsl2-common.ps1 — 共用模块

文档

  • docs/wsl2-container-deployment.md — 完整部署指南(含踩坑记录、故障排查)

其他

  • scripts/doctor.sh 新增 Docker/WSL2 检测
  • test/test_container.sh — 可选容器冒烟测试
  • .gitattributes — 强制 LF 行尾
  • README.md / CHANGELOG.md 更新

链路验证

# 1. 启动代理容器
docker compose -f docker/docker-compose.yml up -d

# 2. 铸造虚拟 OAuth
node scripts/make-virtual-oauth.mjs --auth-dir ~/cs-sbox/.claude-science --force

# 3. 启动 Science
HOME=~/cs-sbox \nANTHROPIC_BASE_URL=http://127.0.0.1:18991/<secret> \nhttps_proxy=http://127.0.0.1:18991 \nclaude-science serve --data-dir ~/cs-sbox/.claude-science --no-browser

代理日志中确认 POST /<secret>/v1/messages 已出现,整链打通。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions