85 lines
3.1 KiB
Markdown
85 lines
3.1 KiB
Markdown
# 开发环境独立领星浏览器
|
|
|
|
该浏览器只供开发环境 Java Firstleg 使用,使用独立 Docker volume,不复用其他 Node.js 账号的 profile。
|
|
|
|
## 启动
|
|
|
|
项目开发部署脚本使用 `DEPLOY_ENV=development`,因此先确保 Java 服务所在 Docker 网络已经存在:
|
|
|
|
```bash
|
|
docker network inspect firstleg-development-network >/dev/null
|
|
```
|
|
|
|
在仓库 `baiyue-firstleg` 根目录执行:
|
|
|
|
```bash
|
|
DEPLOY_ENV=development docker compose \
|
|
-f deploy/docker-compose.lingxing-browser.yml \
|
|
up -d --build
|
|
```
|
|
|
|
Java 容器加入同一个 `firstleg-development-network` 后,Nacos 使用:
|
|
|
|
```yaml
|
|
firstleg:
|
|
lingxing:
|
|
login-origin: https://wms.xlwms.com
|
|
browser-cdp-endpoint: http://lingxing-browser:9222
|
|
auto-sync-enabled: false
|
|
```
|
|
|
|
已有开发数据库需要单独执行一次 SKU 同步权限脚本(目标库为 `baiyue_iam`),否则页面菜单会因没有权限而隐藏、接口会返回 403:
|
|
|
|
```bash
|
|
mysql -h <开发数据库地址> -u <账号> -p baiyue_iam \
|
|
< iam/src/main/resources/db/mojia-sku-sync-permissions.sql
|
|
```
|
|
|
|
执行后让后台账号重新登录,使新的授权快照生效。
|
|
|
|
账号密码通过 Nacos 的加密配置保存:
|
|
|
|
```yaml
|
|
firstleg:
|
|
lingxing:
|
|
username: ${LINGXING_USERNAME}
|
|
password: ${LINGXING_PASSWORD}
|
|
```
|
|
|
|
不要把真实账号、密码、Cookie、Token 或签名密钥写入仓库文件。
|
|
|
|
## 首次登录
|
|
|
|
浏览器容器启动后,noVNC 只绑定宿主机回环地址:
|
|
|
|
```text
|
|
http://127.0.0.1:6080/?autoconnect=1&resize=scale
|
|
```
|
|
|
|
从个人电脑查看开发服务器上的 noVNC 时,先建立 SSH 隧道:
|
|
|
|
```bash
|
|
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`,后台提交方式相同。
|
|
|
|
## 检查
|
|
|
|
```bash
|
|
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`。
|