# DeepSeek Harness Docker 部署 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(`dsh`)Web UI 的运行时镜像封装。 镜像只内置工具链。容器每次启动由 `docker/entrypoint.sh` 从 npm 安装官方 `@deepseek-ai/dsh@latest`,再经本地端口转发(`0.0.0.0:3080` → `127.0.0.1:3081`)启动 `dsh web`。 预构建镜像: ```text registry.cn-hangzhou.aliyuncs.com/skymirror/dsh:latest # linux/amd64 + linux/arm64 ``` ## 一、Docker Compose(推荐) ### 从本仓库构建并启动 ```bash git clone <本仓库地址> cd DeepSeekHarnessDocker docker compose up -d --build docker compose logs -f dsh ``` ### 直接使用 ACR 镜像 把仓库里的 `docker-compose.yml` 中 `build: context: .` 换成: ```yaml image: registry.cn-hangzhou.aliyuncs.com/skymirror/dsh:latest ``` 然后: ```bash docker compose up -d docker compose logs -f dsh ``` ### 最小 compose 示例 ```yaml services: dsh: image: registry.cn-hangzhou.aliyuncs.com/skymirror/dsh:latest ports: - "3080:3080" volumes: - dsh-data:/home/dsh/.dsh - ./workspace:/workspace environment: - DSH_HOME=/home/dsh/.dsh - HOME=/workspace - DSH_NPM_REGISTRY=https://registry.npmmirror.com restart: unless-stopped volumes: dsh-data: ``` ### 常用 compose 命令 ```bash docker compose ps docker compose logs -f dsh # 找带 ?token= 的访问 URL docker compose restart dsh docker compose down # 停容器,保留数据卷 docker compose down -v # 连卷一起删(慎用) ``` ## 二、docker run ```bash docker run -d --name dsh \ --restart unless-stopped \ -p 3080:3080 \ -v dsh-data:/home/dsh/.dsh \ -v "$PWD/workspace":/workspace \ -e DSH_HOME=/home/dsh/.dsh \ -e HOME=/workspace \ -e DSH_NPM_REGISTRY=https://registry.npmmirror.com \ registry.cn-hangzhou.aliyuncs.com/skymirror/dsh:latest docker logs -f dsh ``` 打开日志里的 `dsh web: http://127.0.0.1:3081/?token=…`,把 **`:3081` 改成 `:3080`** 后在浏览器打开一次(30 天 cookie),之后直接访问 `http://127.0.0.1:3080/`。 ### 常用变体 ```bash # 钉版本 -e DSH_DIST_TAG=0.1.5-rc.1 # 改宿主机端口 -p 18080:18080 -e DSH_FORWARD_PORT=18080 # 其它机器用 IP 访问(追加在镜像名之后) --trusted-host your-server-ip ``` ## 三、打开浏览器 1. `docker logs dsh` 复制带 `?token=` 的 URL 2. 将其中的 `127.0.0.1:3081` 换成 `127.0.0.1:3080`(或 `服务器IP:3080`) 3. 打开**一次** → 写入 30 天 cookie 4. 之后直接访问 `http://127.0.0.1:3080/` > 官方包**强制**浏览器认证,没有免 token 的开关。 ## 目录 | 路径 | 作用 | |------|------| | `Dockerfile` | 工具链镜像(Node 24 / Python 3.11 / gcc / pnpm / rustup 引导) | | `docker-compose.yml` | 端口、`dsh-data` 卷、工作区挂载 | | `docker/entrypoint.sh` | 安装 `@deepseek-ai/dsh@latest` 并启动 web | | `docker/ensure-rust.sh` | Rust 按需安装包装器 | | `DEPLOY.md` | 完整部署说明(端口拓扑、环境变量、FAQ) | ## 许可 GPL-3.0 — 见 [LICENSE](LICENSE)。本部署封装仓库采用 GNU General Public License v3.0。上游 DeepSeek Harness 本身仍为 MIT;仅本仓库的 Docker/部署文件适用 GPL-3.0。