4e2cd43a55
iotlcm-onelink-mock:OneLink 挡板服务(本地测试替身)。 - Go module 迁移至 git.5iot.com/iotlcm-public/iotlcm-onelink-mock - 修复同毫秒内多次生成卡导致 ICCID/IMSI 唯一约束冲突 - 补 Apache-2.0 LICENSE,README 重写并新增 docs/deploy.md - 移除内部部署资产(CI 触发器 / 镜像推送脚本 / 指定环境部署文档) - 测试凭据改为 demo_appid / demo_password,真实手机号与内网 IP 脱敏 - 统一 LF 行尾并加 .gitattributes
67 lines
1.8 KiB
Markdown
67 lines
1.8 KiB
Markdown
# 部署说明
|
||
|
||
## Docker Compose(推荐)
|
||
|
||
```bash
|
||
docker compose up -d --build
|
||
```
|
||
|
||
- 后端:容器内 `:8080`
|
||
- 前端:`http://127.0.0.1:18080/onelink-mock/`
|
||
- 数据:命名卷 `backend-data`(SQLite)与 `backend-logs`
|
||
|
||
停止与清理:
|
||
|
||
```bash
|
||
docker compose down # 停容器,保留数据
|
||
docker compose down -v # 连数据卷一起删除
|
||
```
|
||
|
||
## 镜像
|
||
|
||
镜像未预置到公共仓库时,用本地构建:
|
||
|
||
```bash
|
||
docker build -t iotlcm-onelink-mock-backend .
|
||
docker build -t iotlcm-onelink-mock-frontend ./frontend
|
||
```
|
||
|
||
推到自己的镜像仓库后,在 compose 里用 `image:` 覆盖 `build:` 即可。**建议使用不可变标签**(commit sha)而不是 `latest`。
|
||
|
||
## 用 Nginx 以子路径挂载
|
||
|
||
服务前端默认以 `/onelink-mock/` 为前缀访问。挂到已有 Nginx 站点下时,用一个 `location` 转发到前端容器:
|
||
|
||
```nginx
|
||
location = /onelink-mock {
|
||
return 301 /onelink-mock/;
|
||
}
|
||
|
||
location /onelink-mock/ {
|
||
proxy_pass http://127.0.0.1:18080;
|
||
proxy_http_version 1.1;
|
||
proxy_redirect off;
|
||
|
||
proxy_set_header Host $host;
|
||
proxy_set_header X-Real-IP $remote_addr;
|
||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||
proxy_set_header X-Forwarded-Proto $scheme;
|
||
}
|
||
```
|
||
|
||
## 环境变量
|
||
|
||
| 变量 | 默认值 | 说明 |
|
||
| --- | --- | --- |
|
||
| `BAFFLE_ADDR` | `:8080` | 后端监听地址 |
|
||
| `BAFFLE_SQLITE_PATH` | `data/onelink_mock.db` | SQLite 数据文件路径 |
|
||
| `GF_GCFG_FILE` | `manifest/config/config.yaml` | 配置文件路径(容器内为 `/app/manifest/config/config.yaml`) |
|
||
|
||
## 数据持久化
|
||
|
||
卡数据、appid 凭据、订单与操作日志全部落在 SQLite 单文件里。备份直接拷这个文件即可:
|
||
|
||
```bash
|
||
docker compose exec backend sh -c 'sqlite3 /app/data/onelink_mock.db ".backup /app/data/backup.db"'
|
||
```
|