ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

DeepSeek-Harness (DSH) 部署说明文档 - Docker

DeepSeek-Harness (DSH) 部署说明文档 - Docker

DeepSeek-Harness (DSH) 部署说明文档

本文档记录了基于 Docker 的 DeepSeek-Harness 生产环境部署流程,包括镜像构建、容器管理、反向代理、基本认证及数据持久化配置。


1. 环境概览

项目详情
应用名称DeepSeek-Harness (DSH)
源码仓库https://github.com/deepseek-ai/deepseek-harness.git
镜像版本deepseek-harness:local(基于dsh-v0.1.0-rc.7构建)
运行模式Docker 容器,使用host网络模式
容器端口3080(监听127.0.0.1:3080)
主机端口映射无(host 网络直接占用主机端口)
数据持久化/data/dsh/app↔ 容器内/app
反向代理Nginx(监听 80 端口,添加 HTTP 基本认证)
域名example.com
认证用户dsh(密码在/etc/nginx/conf.d/.htpasswd)

2. 部署步骤

2.1 获取源代码并构建镜像

# 克隆代码gitclone https://github.com/deepseek-ai/deepseek-harness.gitcddeepseek-harness# 切换到稳定版本(可选)gitcheckout dsh-v0.1.0-rc.7# 构建 Docker 镜像dockerbuild-tdeepseek-harness:local.

2.2 准备持久化目录

mkdir-p/data/dsh/app

如果已有运行中的容器,先备份原有程序文件(避免挂载后丢失):

dockercpdsh:/app/. /data/dsh/app/

2.3 编写 Docker Compose 配置

创建/opt/dsh/docker-compose.yml:

version:'3'services:dsh:image:deepseek-harness:localcontainer_name:dshnetwork_mode:host# 使用主机网络,容器内 127.0.0.1 即宿主机 127.0.0.1restart:unless-stoppedvolumes:-/data/dsh/app:/app# 挂载整个 /app 实现数据持久化# 环境变量(如需要可添加)# environment:# - DEEPSEEK_API_KEY=your_key 未实际的使用该参数,需要等后续ds版本尝试使用变量控制

2.4 启动容器

cd/opt/dshdocker-composeup-d

查看状态:

docker-composepsdockerlogs dsh

验证服务:

curl-Ihttp://127.0.0.1:3080# 应返回 HTTP/1.1 200 OK

3. 配置 Nginx 反向代理与基本认证

3.1 安装 Nginx 和 htpasswd 工具

# CentOS / RHELyuminstall-ynginx httpd-tools# Ubuntu / Debian# apt install -y nginx apache2-utils

3.2 创建密码文件

mkdir-p/etc/nginx/conf.d htpasswd-c/etc/nginx/conf.d/.htpasswd dsh# 按提示输入密码

3.3 Nginx 虚拟主机配置

配置文件路径(以宝塔面板为例):
/www/server/panel/vhost/nginx/example.com.conf

关键配置片段(已省略通用部分):

server { listen 80; server_name example.com; # 基本认证 auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/conf.d/.htpasswd; location / { proxy_pass http://127.0.0.1:3080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # WebSocket 支持 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }

注意:如果使用宝塔面板,可以直接在面板中添加站点并修改配置文件,避免路径混淆。

3.4 测试并重载 Nginx

nginx-tsystemctl reload nginx

3.5 放行防火墙

firewall-cmd--permanent--add-service=http firewall-cmd--reload

云服务器安全组需开放 80(HTTPS 可选 443)端口。


4. 验证部署

浏览器访问http://example.com,弹出认证窗口,输入用户名dsh及密码,成功进入应用界面即部署完成。


5. 日常管理命令

所有操作均在/opt/dsh目录下执行:

cd/opt/dsh
操作命令
查看运行状态docker-compose ps
查看实时日志docker-compose logs -f dsh
重启容器docker-compose restart
停止容器docker-compose stop
启动已停止的容器docker-compose start
删除容器(保留数据)docker-compose down
进入容器内部docker exec -it dsh /bin/sh

6. 数据持久化说明

  • 容器内/app目录已挂载到宿主机/data/dsh/app。
  • 所有应用数据(包括配置、数据库文件、日志、上传文件等)都会写入/data/dsh/app。
  • 删除容器或镜像不会影响该目录,数据安全。

查看数据目录内容:

ls-la/data/dsh/app

7. 备份与恢复

7.1 备份数据

tar-czfdsh-backup-$(date+%Y%m%d).tar.gz /data/dsh/app

7.2 恢复数据

# 停止容器docker-composedown# 恢复数据tar-xzfdsh-backup-YYYYMMDD.tar.gz-C/# 重新启动docker-composeup-d

8. 升级镜像(重要注意事项)

由于当前docker-compose.yml挂载了整个/app,直接使用新镜像启动不会更新程序文件(因为宿主机目录中的程序文件是旧版本)。升级时请按以下步骤操作:

8.1 构建新镜像

cd/path/to/sourcedockerbuild-tdeepseek-harness:new.

8.2 停止旧容器

cd/opt/dshdocker-composedown

8.3 备份当前数据(可选)

cp-r/data/dsh/app /data/dsh/app_backup

8.4 将新镜像的程序文件复制到宿主机目录

dockerrun--rmdeepseek-harness:newtar-C/app-c.|tar-C/data/dsh/app-x

8.5 更新docker-compose.yml中的镜像标签为deepseek-harness:new

8.6 重新启动

docker-composeup-d

优化建议:未来可修改挂载策略,只挂载数据子目录(如/app/data),使程序文件完全跟随镜像更新,无需上述额外步骤。


9. 故障排查

现象检查方法
容器无法启动docker logs dsh/docker-compose logs dsh
端口被占用netstat -tulpn | grep 3080
Nginx 返回 502容器是否运行?proxy_pass地址是否正确?
认证不生效Nginx 配置中auth_basic_user_file路径是否正确,密码文件是否存在
数据未持久化确认挂载目录是否正确,检查/data/dsh/app是否有新文件生成

10. 联系与维护

  • 项目官网:https://github.com/deepseek-ai/deepseek-harness
  • 本部署文档维护人:阿白的旅行
  • 更新日期:2026-08-19

提示1:若需启用 HTTPS,可使用 Certbot 自动获取 Let’s Encrypt 证书,具体命令:

certbot--nginx-dexample.com

提示2:本方案的认证方式过于简陋,建议开启nginx白名单 / 其他自定义防护措施

返回列表