使用docker安装node.js和deepseek harness

最新的deepseek harness出来了,这个工具非常强大,看起来是一个类似官方网页版的聊天工具,其实他的插件功能能访问本地和网络io,可以实现主流ai编程工具、龙虾的功能。

但是我不想在本地装node.js,太多烂七八糟的软件了,使用docker来搞个虚拟机安装node.js。基本上就是下载docker,安装node.js,安装deepseek harness。

docker里面的镜像和容器,跟git差不多,镜像就是服务器的仓库,容器就是本地的备份,平时都是在容器里面搞,确认了就保存到镜像里面去。容器可以随时删除,再从镜像拉就行了。

1 下载安装docker windows版本和安装node.js

1.1 首次启动会报错Virtualization support not detected,运行如下命令启用虚拟机平台然后重启电脑:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

1.2 重启后如果提示虚拟机wsl失败running wslexec: An error occurred while running the command,安装虚拟机:

wsl --install --no-distribution

1.3 拉取镜像:

docker pull node:24-alpine

如果失败配置docker设置中docker engine的镜像地址:

"registry-mirrors": [

"https://docker.m.daocloud.io"

]

1.4 启动后验证node.js:

docker run -it --rm --entrypoint sh node:24-alpine

node -v

npm -v

2 进入docker中,启动node.js容器的shell,名字为:dsh-builder,后续需要保存镜像

docker run -it --name dsh-builder -p 3080:3080 --entrypoint sh node:24-alpine

#docker run -it --rm -p 3080:3080 --entrypoint sh node:24-alpine 一次性运行的命令

3 安装依赖,需要编译dsh

apk add --no-cache python3 py3-pip make g++ git

4 全局安装dsh,不用每次都安装一次

npm install -g @deepseek-ai/dsh

5 不要退出当前docker shell,另开一个cmd窗口,运行如下命令保存镜像为 my-dsh:latest :

docker commit dsh-builder my-dsh:latest

6 使用保存的镜像开启dsh服务,可以正常的镜像内部运行:

docker run -it --rm -p 3080:3080 -e DEEPSEEK_API_KEY="你的API密钥" --entrypoint node my-dsh:latest --expose-internals /usr/local/bin/dsh web

7 win10中打开浏览器http://127.0.0.1:3080 没有显示dsh服务,是因为dsh只连接了内部的127.0.0.1,外部ip地址禁止接入了,修改dsh代码删掉限制:

sed -i 's/if (options.host === "0.0.0.0") program.error(\^;*;/\/\/ &/' /usr/local/lib/node_modules/@deepseek-ai/dsh/node_modules/@deepseek-ai/dsh-web-app/lib/startup.js

改完了记得另开一个cmd终端保存容器:

docker commit -m "allow host 0.0.0.0" dsh-modified my-dsh:latest

8 现在在win10系统中打开:http://127.0.0.1:3080,可以看到dsh的页面了,可以正常使用了。

9 后续再使用的时候:

从镜像my-dsh:latest,新建并运行容器名为dsh-modified:

docker run -it --name dsh-modified -p 3080:3080 --entrypoint sh my-dsh:latest

运行dsh:

node --expose-internals /usr/local/bin/dsh web --host 0.0.0.0 &

新开cmd窗口保存容器(会生成当时容器的快照,下次打开容器会进入当前的快照):

docker commit dsh-modified my-dsh:latest

下次再进入同一容器并保存操作:

docker exec -it dsh-modified sh

docker commit dsh-modified my-dsh:latest

一次性打开容器不保存:

docker run -it --rm -p 3080:3080 --entrypoint node my-dsh:latest --expose-internals /usr/local/bin/dsh web --host 0.0.0.0

开启容器

docker start dsh-modified

停止容器

docker stop dsh-modified

10 其他命令:

列举所有容器

docker ps -a

列举所有镜像

docker images

删除容器

docker rm -f dsh-modified

最后的效果:

相关推荐
G018_star sky♬2 小时前
如何用nodejs写一个简单后端服务
node.js
kiracrimson2 小时前
npm 入门:包管理器、依赖与 npx
前端·npm·node.js
花花鱼4 小时前
使用 nvm 管理多 Node.js 版本 + pnpm 完整实操,解决 pnpm Node 版本报错
node.js
定栓5 小时前
Webpack迁到Vite第四节:SVG 图标系统
前端·webpack·node.js
小天源18 小时前
智叟云集系统架构解析:从品牌 AI 可见度监测到前后端协同
人工智能·react.js·系统架构·node.js·react·ai监测·ai品牌监测
钝挫力PROGRAMER1 天前
Chrome-devtools-mcp:闭环Agent的自我验证
ai·agent·chrome devtools·mcp·dsh
用户6122716650241 天前
电费 9 毛/天:我让一台 9 年前的旧 MacBook 替我上班,它比入门云服务器还能打
node.js
PegasusYu1 天前
Node.js使用nedb轻量级数据库测试脚本
数据库·electron·node.js·脚本·测试·轻量级·nedb
WebInfra1 天前
Rsdoctor 2.0 发布:Agent 驱动的全自动优化工具
前端·javascript·node.js
DevUp2 天前
标着 JavaScript 的 Wiki 与知识库:既不是 CMS 也不是 SSG(番外三)
javascript·node.js·cms