Files
SKYMirror 4be0850529 docs: add docker / docker-compose run examples
Document ACR multi-arch image, compose minimal YAML, docker run
variants (pin version, custom port, --trusted-host), and token URL
handling.
2026-09-16 01:29:11 +08:00

124 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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。