最近想试用一下 DeepSeek Harness(DSH)。对于 AI Agent,为了安全起见我的习惯是先在容器里面跑。发现 DSH 出于安全考虑禁止监听 0.0.0.0,这给在容器中运行带来了一些麻烦。不过这只是个小问题,以下是我的配置,可供参考。
由于 DSH 只监听容器内的 127.0.0.1:3080,这里用 socat 把容器的 8080 端口转发给它,再通过 compose 映射到宿主机。
Dockerfile:
FROM node:24
RUN apt-get update \
&& apt-get install -y --no-install-recommends socat \
&& rm -rf /var/lib/apt/lists/*
RUN npm install -g @deepseek-ai/dsh
WORKDIR /workspace
EXPOSE 8080
CMD ["sh", "-c", "npx @deepseek-ai/dsh web --no-open & socat TCP-LISTEN:8080,fork,reuseaddr TCP:127.0.0.1:3080"]
compose.yml:
services:
dsh:
build: .
ports:
- "127.0.0.1:3080:8080"
volumes:
- ./dsh_home:/root/.dsh
- ./workspace:/workspace
注意这里把端口绑定在宿主机的 127.0.0.1:3080 上,因此只能从本机访问,不会把服务暴露到局域网。
运行前先创建两个目录,用于挂载配置和数据:
mkdir dsh_home workspace
然后运行:
docker compose up
等服务启动完成后,打开日志中输出的带 token 的链接,就能看到 Web UI 了。