Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Conversation

@tlsneo
Copy link

@tlsneo tlsneo commented Dec 17, 2025

功能概述

本 PR 为 Coding-Tool 添加完整的 Docker 支持,方便用户一键部署,支持内网多用户共享使用。

新增文件

文件 说明
Dockerfile Docker 镜像构建文件
docker-start.js Docker 专用启动脚本(无交互模式)
docker-compose.yml 一键启动配置,包含 Watchtower 自动更新
.dockerignore Docker 构建优化,排除不必要文件
.github/workflows/docker-publish.yml GitHub Actions 自动构建发布

主要特性

1. 多架构支持

  • `linux/amd64
  • linux/arm64

2. 自动构建发布

  • 当打 tag(如 v2.3.0)时,GitHub Actions 自动构建并推送镜像到 GHCR
  • 镜像地址:ghcr.io/cooperjiang/cc-tool:latest

3. Watchtower 自动更新

  • docker-compose.yml 包含 Watchtower 服务
  • 每 6 小时自动检查新版本并更新容器
  • 用户无需手动操作,发布新版本后自动更新

4. 内网多用户共享

  • 支持在内网服务器部署,多台电脑共享使用
  • 统一管理 API 渠道和 Token 统计

技术细节

Docker 网络适配,在dockerfile中patch

原代码中代理服务器监听 127.0.0.1

RUN sed -i "s/listen(port, '127.0.0.1'/listen(port, '0.0.0.0'/g" src/server/proxy-server.js && \
    sed -i "s/listen(port, '127.0.0.1'/listen(port, '0.0.0.0'/g" src/server/codex-proxy-server.js && \
    sed -i "s/listen(port, '127.0.0.1'/listen(port, '0.0.0.0'/g" src/server/gemini-proxy-server.js

docker-start.js 说明

创建独立的 Docker 启动脚本,原因:
1. 原 src/server/index.js 中 startServer() 函数在端口冲突时会调用 inquirer 交互询问
2. Docker 容器中无法进行交互式操作
3. docker-start.js 直接启动服务,跳过交互逻辑
4. 自动创建必要的数据目录(.claude、.codex、.gemini)

目录结构适配

Docker 容器中 $HOME=/data,需要创建以下目录:
/data/.claude/cc-tool/    # 配置和渠道数据
/data/.claude/logs/       # 日志文件
/data/.claude/projects/   # 项目数据
/data/.codex/             # Codex CLI 配置(解决 "Codex CLI not installed" 错误)
/data/.gemini/            # Gemini CLI 配置

使用方法

方式一:使用官方镜像(推荐)

# 下载 docker-compose.yml
wget https://raw.githubusercontent.com/CooperJiang/cc-tool/main/docker-compose.yml

# 启动
docker-compose up -d

# 访问 http://localhost:10099

方式二:本地构建

git clone https://github.com/CooperJiang/cc-tool.git
cd cc-tool
docker-compose build
docker-compose up -d

内网多用户使用

1. 在服务器部署 Docker 容器
2. 其他电脑配置 Claude Code:(其他客户端同理)
// ~/.claude/settings.json
{
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "any-value",
    "ANTHROPIC_BASE_URL": "http://服务器IP:10088"
  }
}

端口说明

| 端口  | 服务        |
|-------|-------------|
| 10099 | Web UI      |
| 10088 | Claude 代理 |
| 10089 | Codex 代理  |
| 10090 | Gemini 代理 |

测试情况

- 本地构建成功
- 容器启动正常
- Web UI 可访问
- 代理服务可用(gemini未测试)
- 内网其他电脑可连接
- Watchtower 自动更新正常

- Dockerfile with multi-arch (amd64/arm64)
- docker-compose.yml with Watchtower auto-update
- GitHub Actions workflow for tag-based auto-build
- docker-start.js for non-interactive startup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Morty Proxy This is a proxified and sanitized view of the page, visit original site.