dsh-docker
使用 Docker 封装运行 deepseek-harness d的 Web 服务。容器内运行 dsh 和 Caddy,宿主机通过 3080 端口访问服务。
- Stars
- 1
- Language
- Dockerfile
- Created
- Aug 27, 2026
- Updated
- Aug 27, 2026
Introduction
dsh-docker
使用 Docker 封装运行 dsh Web 服务。容器内运行 dsh 和 Caddy,宿主机通过 3080 端口访问服务。
快速开始
环境要求
- Docker(Windows、macOS 或 Linux)
- Docker Compose v2(使用
docker compose命令) - 构建镜像和容器首次启动时可访问 Debian、npm 镜像及相关插件仓库
启动
在项目根目录执行:
docker compose up -d --build
然后打开:
http://localhost:3080
首次启动时,容器会安装或更新 Web profile 使用的插件,因此可能需要等待一段时间。查看实时日志:
docker compose logs -f dsh-docker
常用命令
# 查看容器状态
docker compose ps
# 前台启动并查看日志
docker compose up --build
# 停止服务,但保留容器
docker compose stop
# 停止并删除容器和网络
docker compose down
# 重启服务
docker compose restart
# 重新构建基础镜像和应用
docker compose build --pull
docker compose up -d
# 进入运行中的容器
docker compose exec dsh-docker bash
docker compose down 不会清空宿主机上的 dsh/ 和 workspace/ 目录。删除或清理这些目录前,请先做好备份。
项目结构
.
├── config/
│ ├── Caddyfile # Caddy 反向代理配置
│ └── start.sh # 容器启动脚本
├── dsh/
│ ├── profiles/web/ # dsh Web profile 及插件依赖
│ ├── settings.yaml # dsh 设置
│ ├── storages/ # dsh 持久化数据
│ └── skin-center/ # 皮肤中心资源
├── workspace/ # dsh 工作区数据
├── Dockerfile # Docker 镜像构建配置
└── docker-compose.yml # 服务、端口和目录挂载配置
服务配置
端口转发
Compose 将宿主机 3080 映射到容器 3080。Caddy 在容器内监听 3080,并将请求转发到 dsh 的 3081 端口:
宿主机:3080 -> Caddy:3080 -> dsh:3081
修改 config/Caddyfile 后,需要重新构建镜像:
docker compose up -d --build
持久化目录
./dsh:/root/.dsh:保存 dsh 配置、profile、插件缓存和存储数据。./workspace:/root/workspace:保存 dsh 工作区内容。/etc/localtime:/etc/localtime:ro:尝试同步容器时区。
当前 Compose 文件没有额外的环境变量或 env_file 配置。
Web profile 插件
容器启动时,config/start.sh 会安装或更新以下插件:
dsh1024@latest@xmanrui/dsh-im@michengai/dsh-automation@linxin666/dsh-client-ui-skin-center
插件安装依赖网络连接。由于部分插件在启动时从远程仓库获取,重启容器可能触发插件版本更新。
故障排查
查看完整日志:
docker compose logs -f dsh-docker
检查容器内服务:
docker compose exec dsh-docker curl http://localhost:3081
docker compose exec dsh-docker curl http://localhost:3080
验证 Caddy 配置:
docker compose exec dsh-docker caddy validate \
--config /etc/caddy/Caddyfile \
--adapter caddyfile
如果无法访问 http://localhost:3080,建议依次检查:
docker compose ps中容器是否处于运行状态。- 日志中插件安装和 dsh 启动是否报错。
- 宿主机的
3080端口是否已被其他程序占用。 - Docker Desktop 是否正常运行,以及构建和启动时是否能访问外部镜像源。
在 Windows Docker Desktop 上,如果 /etc/localtime 挂载导致启动报错,可以检查或暂时移除该时区挂载;它不是 dsh Web 服务的核心依赖。
许可证
本仓库主要提供 Docker 构建和运行配置。dsh、Caddy 及各插件分别遵循其上游项目的许可证。