
如何为 Midscene.js 搭建容器化服务Docker 部署完整指南【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midsceneMidscene.js 是基于视觉语言模型的 GUI 自动化工具可驱动 Web、Android、iOS 界面执行 E2E 测试与自动化操作。本文用 Docker 把 Midscene.js 打包成可部署的服务覆盖环境检查、镜像构建、启动验证与排障全过程。适用场景什么时候该给 Midscene.js 做容器化容器化不是为了炫技而是针对几类具体问题的解法。下面三种情况直接上容器收益最大。多台机器环境不一致Midscene.js 的仓库对运行时版本有明确要求Node 需要 20.19 / 22.12 / 24包管理器要求 pnpm 9.3。团队里有人用 Node 20、有人用 Node 24本地装依赖时版本漂移导致的报错很常见。把整个工作区打进一个基于 alpine 的 Node 镜像所有人的运行环境由同一个镜像决定与宿主机解耦。在 CI 中跑自动化测试CI 机器是无状态环境每次构建都从干净系统开始。如果每次都要现装 Node、现拉依赖构建慢且不稳定。预先构建好 Midscene.js 的 Docker 镜像后CI 只需要docker run自动化测试服务的启动时间从分钟级降到秒级也天然做到了环境隔离。团队共享一个自动化服务Midscene 的 Playground 服务监听固定端口默认 5800。把它部署在一台公共机器上并做成容器团队成员通过浏览器访问同一地址做调试、回放和验证脚本避免每人各起一套本地环境也省去了我这边能跑、你那边跑不起来的扯皮。上手部署Docker 环境检查清单开始前确认宿主机上有 Docker 与 docker compose 两个工具并记录 Node 版本要求以便选对基础镜像。docker --version docker compose version如果版本正常拉取代码git clone https://gitcode.com/GitHub_Trending/mid/midscene cd midscene仓库是多包工作区核心逻辑在 packages/core/Playground 服务在 packages/playground/。镜像只需要覆盖工作区根目录即可。构建镜像并启动 Midscene.js 服务Dockerfile 保持最小化关键约束是基础镜像的 Node 版本必须落在仓库支持范围内FROM node:22-alpine WORKDIR /app COPY . . RUN corepack enable pnpm install --frozen-lockfile EXPOSE 5800 CMD [pnpm, run, dev]pnpm run dev会构建工作区各包并拉起服务Playground 服务默认监听 5800 端口。模型相关参数不要写死在镜像里交给 compose 注入services: midscene: build: . ports: - 5800:5800 env_file: .env restart: unless-stopped.env里放置模型配置常用的有MIDSCENE_MODEL_NAME与MIDSCENE_MODEL_BASE_URL其余字段在官方文档的模型配置章节有完整说明。构建并启动docker compose up -d --build首次构建需要拉依赖和编译各包耐心等待几分钟即可。服务启动验证与常见排障启动后先用 compose 视角确认容器状态docker compose ps docker compose logs -f midscene容器状态为 running、日志里出现服务监听 5800 的记录后在宿主机做连通性验证curl -I http://localhost:5800返回 HTTP 响应头即说明服务正常。排障时优先检查三类问题端口冲突宿主机 5800 被占用时把映射改成8080:5800之类即可容器内端口不变。模型服务不通任务执行时报模型超时多半是容器网络出不去。用docker compose exec midscene curl -I 模型服务地址在容器内验证出站连通性再检查代理或网络策略。镜像构建失败优先看pnpm install阶段的报错多为 Node 版本与 engines 字段不匹配换回受支持的基础镜像版本。面向生产环境的加固资源限制、健康检查与日志把服务放到长期运行的机器上之前建议在 compose 里补四样东西资源上限、健康检查、日志轮转以及对外模型服务的连通性兜底。healthcheck: test: [CMD, wget, -qO-, http://localhost:5800] interval: 30s deploy: resources: limits: cpus: 2 memory: 2g日志用轮转避免磁盘写满logging: driver: json-file options: max-size: 10m max-file: 3再说明两点一是把.env加入.dockerignore避免模型密钥被打进镜像层二是如果模型服务走内网地址在 compose 里显式声明网络并把模型服务端加入可达白名单比事后排查偶发超时省事得多。收尾到这里Midscene.js 已经从一个本地工程变成了一个可复用、可扩容的容器化服务环境由镜像锁定验证靠 5800 端口的连通性加固项集中在资源与日志上。后续升级只需重新构建镜像并滚动替换容器。更多配置细节可查阅官方文档apps/site/docs/zh/。【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考