Files
baiyue-firstleg/deploy/lingxing-browser-dev.md
T
2026-09-23 08:58:56 +08:00

3.1 KiB

开发环境独立领星浏览器

该浏览器只供开发环境 Java Firstleg 使用,使用独立 Docker volume,不复用其他 Node.js 账号的 profile。

启动

项目开发部署脚本使用 DEPLOY_ENV=development,因此先确保 Java 服务所在 Docker 网络已经存在:

docker network inspect firstleg-development-network >/dev/null

在仓库 baiyue-firstleg 根目录执行:

DEPLOY_ENV=development docker compose \
  -f deploy/docker-compose.lingxing-browser.yml \
  up -d --build

Java 容器加入同一个 firstleg-development-network 后,Nacos 使用:

firstleg:
  lingxing:
    login-origin: https://wms.xlwms.com
    browser-cdp-endpoint: http://lingxing-browser:9222
    auto-sync-enabled: false

已有开发数据库需要单独执行一次 SKU 同步权限脚本(目标库为 baiyue_iam),否则页面菜单会因没有权限而隐藏、接口会返回 403:

mysql -h <开发数据库地址> -u <账号> -p baiyue_iam \
  < iam/src/main/resources/db/mojia-sku-sync-permissions.sql

执行后让后台账号重新登录,使新的授权快照生效。

账号密码通过 Nacos 的加密配置保存:

firstleg:
  lingxing:
    username: ${LINGXING_USERNAME}
    password: ${LINGXING_PASSWORD}

不要把真实账号、密码、Cookie、Token 或签名密钥写入仓库文件。

首次登录

浏览器容器启动后,noVNC 只绑定宿主机回环地址:

http://127.0.0.1:6080/?autoconnect=1&resize=scale

从个人电脑查看开发服务器上的 noVNC 时,先建立 SSH 隧道:

ssh -N -L 6080:127.0.0.1:6080 <开发服务器用户>@<开发服务器地址>

然后在个人电脑浏览器打开上面的地址。CDP 不需要暴露到宿主机,Java 通过 Docker 网络访问 lingxing-browser:9222。

正常情况下不需要先人工登录。点击后台测试连接或人工推送时,Java 会自动填写账号密码。遇到腾讯安全滑块时,通过 noVNC 人工完成滑块;遇到短信、邮箱或 TOTP 二次验证时,在后台输入验证码,Java 会自动继续原操作。

登录页已按领星实际页面校验以下控件:账号 input[name="username"]、密码 input[name="password"]、普通登录按钮 .login-btn;检测到二次验证页后,短信/邮箱立即自动点击 .verify-code-login .code-btn 获取验证码,后台输入验证码后只填写 input[placeholder="输入验证码"] 并点击 .verify-code-login .login-btn,不会重复发送。TOTP 由页面自动初始化,验证码输入框为 input.verification-code-native,后台提交方式相同。

检查

chmod +x deploy/scripts/check-lingxing-browser.sh
DEPLOY_ENV=development deploy/scripts/check-lingxing-browser.sh

DEPLOY_ENV=development docker compose \
  -f deploy/docker-compose.lingxing-browser.yml ps

docker exec firstleg-dev-lingxing-browser \
  wget -q -O - http://127.0.0.1:9222/json/version

不要把 6080 当成 CDP 地址,也不要使用容器内原生 9223;Java 使用同网络的 http://lingxing-browser:9222。