DeepSeek Harness - DeepSeek coding agent development environment
3.2K
开箱即用的 DeepSeek Harness 开发容器:DeepSeek 官方编码智能体框架(对标 Claude Code, 理念是 "Model + Harness = Agent")的 Web UI,配好反向代理与常用 agent 工具链,拉起来就能开工。
容器内是 dsh web + nginx 一体化:dsh web 只监听回环 127.0.0.1:3080(官方刻意如此),
由 nginx 在 :80 对外提供服务,并代浏览器完成登录握手。
容器内不含 sshd,不暴露 22 端口,管理容器请用
docker exec。 镜像里的ssh仅作客户端使用(如git clone git@host、登录其他主机)。
docker pull micrograils/deepseek-harness:latest
docker run -d --rm \
-p 3080:80 \
-e DEEPSEEK_API_KEY=你的API密钥 \
-e DSH_UID=$(id -u) -e DSH_GID=$(id -g) \
-v $(pwd):/workspace \
micrograils/deepseek-harness
# 浏览器访问 http://127.0.0.1:3080
# 进 shell(非 root 用户 dsh)
docker exec -it <容器名> bash
docker logs 里打印的 ?token= URL。DSH_HOME,加一个
-v ./dsh-data:/opt/dsh 挂载即可持久化。SameSite
从 dsh 默认的 Strict 改写为 Lax,否则浏览器会反复换票直到报「重定向次数过多」。dsh 报 EACCES,或生成的文件属主是 1000/root):用上面的
DSH_UID / DSH_GID 把容器内运行用户对齐到宿主机用户;不设置则保持默认 1000:1000。以上几项都已由镜像内置处理(登录握手、跳转保留端口、会话 Cookie 改写),无需额外配置。
下面这份 compose 是给不想敲长 docker run 的人准备的 demo:存成 docker-compose.yml
(或 compose.yaml)即可直接用,只依赖公开镜像,不需要源码或仓库里的任何文件。
services:
deepseek-harness:
image: micrograils/deepseek-harness:latest
container_name: deepseek-harness
ports:
- "3080:80" # Web UI
environment:
- DEEPSEEK_API_KEY=your-api-key
- DSH_UID=1000 # 填 `id -u`
- DSH_GID=1000 # 填 `id -g`
# - DEEPSEEK_BASE_URL=https://your-internal-llm.example.com
volumes:
- ./project:/workspace
- ./dsh-data:/opt/dsh
docker compose up -d
# 浏览器访问 http://127.0.0.1:3080
| 变量 | 默认 | 说明 |
|---|---|---|
DEEPSEEK_API_KEY | 空 | DeepSeek API 密钥 |
DEEPSEEK_BASE_URL | 空 | 企业内网 LLM 端点(生产请指向内网算力,勿用公网 api.deepseek.com) |
DSH_HOME | /opt/dsh | harness 配置 / profile / 凭证目录(建议挂载持久化) |
DSH_HOST | 127.0.0.1 | dsh web 监听地址(保持回环,勿改) |
DSH_PORT | 3080 | dsh web 监听端口(nginx 反向代理目标) |
DSH_UID / DSH_GID | 1000 | 容器内运行用户 dsh 的 uid/gid,对齐宿主机用户(见上文) |
DSH_PUBLIC_URL | http://127.0.0.1:3080 | 仅用于启动日志里打印的访问地址(端口映射不同时改它) |
DSH_TELEMETRY_DISABLED | 1 | 关闭遥测(默认关) |
0.1.5-rc.2(同时用作镜像 tag;:latest 跟随最新发布)node:24-bookworm-slim (Debian),多架构 amd64 / arm64127.0.0.1:3080)——无 SSH 服务dsh(非 root,sudo NOPASSWD;uid/gid 默认 1000:1000,可映射)/workspace| 日期 | 变更 |
|---|---|
| 2026-09-14 | 移除 sshd(不再暴露 22 端口,改用 docker exec);新增 DSH_UID / DSH_GID 用户映射;发布前增加冒烟测试 |
| 2026-09-13 | dsh → 0.1.5-rc.2 |
| 2026-09-11 | dsh → 0.1.5-rc.1 |
| 2026-09-07 | 启动时自动纠正 /home/dsh、DSH_HOME、/workspace 属主,修复 bind mount 后 dsh 写不进去;dsh → 0.1.2-rc.1 |
| 2026-09-01 | 远程访问修复:启动令牌握手自动化(旧版 dsh 无令牌机制,会自动退化为纯反向代理)、跳转保留外部端口、会话 Cookie 改 SameSite=Lax;dsh → 0.1.2-alpha.3 |
| 2026-08-31 | 统一版本管理与发布流程,首次提供 compose 示例(即上文那份 demo);dsh → 0.1.1-rc.2 |
| 2026-08-19 | 首个版本:dsh 0.1.0-rc.7,dsh web + nginx 一体化镜像 |
⚠️ 本镜像把一个具备远程代码执行能力的智能体暴露到网络上,仅限可信网络 / 本地使用; 暴露到公网前务必加认证(例如在 nginx 层加 TLS + Basic Auth)。
⚠️ DeepSeek Harness 目前处于开发者预览阶段,迭代快速,可能存在破坏性兼容变更; 升级时重拉新 tag 的镜像、重建容器即可,配置与登录态由(挂载出来的)
DSH_HOME保留。
Content type
Image
Digest
sha256:bd7ff91bd…
Size
505.5 MB
Last updated
7 days ago
docker pull micrograils/deepseek-harness