Midscene.js 容器化部署完整指南:Docker 搭建与运行 AI 自动化服务

Midscene.js 容器化部署完整指南:Docker 搭建与运行 AI 自动化服务 Midscene.js 容器化部署完整指南Docker 搭建与运行 AI 自动化服务【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene想把 Midscene.js 装进容器里跑起来又不想在本机装一堆依赖本文带你用 Docker 把它跑起来克隆代码、准备模型密钥、在容器内装依赖、启动 Playground 服务最后验证 AI 驱动浏览器的功能真的可用。全程不需要修改仓库里任何文件。先看最终效果部署完成后你会得到两个服务一个是运行在 3000 端口的 Playground 网页你打开浏览器就能看到操作台界面另一个是 5870 端口的 Playground Demo Server它用 Puppeteer 驱动一个无头 Chrome 加载测试页面并挂上一个PuppeteerAgent。你在网页里输入一句自然语言指令比如点击搜索框输入关键词AI 就会接管浏览器执行执行过程有截图和步骤记录。动手前需要准备什么Docker任意较新版本确认docker version能正常输出Node 环境不用装所有 Node 相关步骤都在容器内执行宿主机只需 Docker一个视觉语言模型 API KeyMidscene 通过多模态模型看懂屏幕再操作需要类似 OpenAI 兼容接口的 Key 和 Base URL约 2GB 磁盘空间pnpm 依赖 Chromium 浏览器建议预留充足从零到跑起来步骤1克隆仓库到本地git clone https://gitcode.com/GitHub_Trending/mid/midscene cd midscene它把整个 monorepo 拉到当前目录并进入项目根目录。判断成功ls能看到apps/、packages/、pnpm-workspace.yaml这些条目。Midscene 是 pnpm workspace 结构packages/playground/ 是服务实现apps/playground/ 是前端应用后面都会用到。步骤2在仓库根目录准备好模型密钥在midscene/.env文件中写入三行文件名就叫.env不带引号MIDSCENE_MODEL_BASE_URL你的模型服务地址 MIDSCENE_MODEL_API_KEY你的API Key MIDSCENE_MODEL_NAME模型名称Demo server 启动时会自动加载仓库根目录的.env见 apps/playground/demo/server.ts。判断成功cat .env能看到三行且 Key 没有笔误。完整的环境变量说明可参考 setup-env 文档。步骤3在容器内安装项目依赖docker run -it --name midscene-work \ -v $PWD:/app -w /app \ node:20-alpine sh -c corepack pnpm install它启动一个 node:20-alpine 容器把当前目录挂载到容器内的/app用 corepack 激活 pnpm 后安装全部 workspace 依赖。判断成功输出最后出现Done in ...且无红色报错容器内生成node_modules/。仓库要求 Node^20.19所以基础镜像选 node:20 系列。步骤4启动 Playground 服务docker run -it --rm --name midscene \ -v $PWD:/app -w /app -p 3000:3000 -p 5870:5870 \ -e MIDSCENE_MODEL_BASE_URL -e MIDSCENE_MODEL_API_KEY -e MIDSCENE_MODEL_NAME \ node:20-alpine sh -c corepack pnpm run demo -w playground它在容器里同时启动两件事demo:serverPuppeteer 无头浏览器 Agent 服务监听 5870和 Playground 前端监听 3000并把两个端口映射到宿主机。-e参数把宿主机环境变量透传进容器覆盖.env的值。判断成功终端先后打印Playground Demo Server started on port 5870和 rsbuild 的 ready 信息。步骤5验证服务真的可用docker ps curl -s http://localhost:5870/ | head -c 200docker ps里应能看到midscene容器状态为 Upcurl 能返回内容说明 5870 端口已通。最后打开浏览器访问http://localhost:3000看到 Playground 界面、页面提示已连接 demo server就算整条链路跑通了网页 → Agent 服务 → 无头 Chrome → 你的模型 API。步骤6用一句指令体验 AI 操作在 Playground 页面输入类似点击右上角菜单里的搜索按钮这样的指令并执行。判断成功页面出现逐步执行的进度条和截图每一步都有对应的画面最后给出执行结果。如果执行卡住不动多半是模型 Key 或网络问题跳到下一节排查。常见故障与快速恢复Puppeteer 报找不到 Chrome /Failed to launch the browser processalpine 镜像默认没有浏览器原因是最小镜像没装 Chromium。解法容器启动命令里加-e PUPPETEER_EXECUTABLE_PATH/usr/bin/chromium并在安装 Chromium 的镜像里运行。EADDRINUSE端口被占用宿主机 3000 或 5870 已被其他进程占用。解法ss -ltnp | grep 5870找到占用者或把映射改成3001:3000后访问新端口。执行指令时模型返回 401 / 404API Key 或 Base URL 传错。解法确认宿主机env | grep MIDSCENE有值且与.env一致模型名和该服务实际支持的对得上。第一次pnpm install极慢甚至超时容器内走了国外 npm 源。解法在容器启动命令里加-e PUPPETEER_SKIP_DOWNLOADtrue浏览器另行安装并为 npm 配置国内镜像第二次起依赖已缓存会快很多。要长期/生产使用时限制容器资源docker run加--cpus2 --memory4gAI 服务主要吃内存和网络避免占满宿主机固定镜像版本把node:20-alpine换成具体 tag如node:20.19-alpine避免基础镜像漂移导致行为变化配置健康检查用--health-cmd curl -f http://localhost:5870/ || exit 1 --health-interval30s容器异常时能被编排系统自动拉起收敛日志给 daemon 设置max-size: 10m, max-file: 3dockerd 的 log-driver 配置防止无头浏览器频繁输出撑爆磁盘密钥不要进镜像始终用-e或编排平台的 Secret 注入模型 Key.env加进.gitignore绝不提交下一步到这里你已经完成了完整链路克隆 → 密钥 → 容器内装依赖 → 启动 Playground → 验证 AI 执行。如果想继续深入可以从三个方向走了解 CLI 批量跑 YAML 脚本的方式看 packages/cli/ 与 yaml-script-runner 文档研究 Agent 服务的实现细节核心代码在 packages/playground/src/server.ts需要控制真机时Android Playground 的部署思路类似参考 Android Playground 说明【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考