dd3cd24b70
# Conflicts: # deploy/dev/docker-compose.yml # deploy/dev/envoy.yaml # desc/api/dispute.api # desc/api/review.api # desc/api/search.api
2.6 KiB
2.6 KiB
本地开发环境
前置条件
- Docker(需要 buildx)
- Python 3(构建脚本)
使用
cd deploy/dev
# 1. 构建所有微服务镜像
# 默认 8 并行,可通过环境变量 BAKE_BATCH_SIZE 调整
python3 build.py
# 2. 启动
docker compose up -d
# 3. 查看状态
docker compose ps
# 4. 通过网关访问
curl http://127.0.0.1:18080/healthz
# 5. 停止
docker compose down
构建脚本会扫描 app/ 下所有 api、rpc、mq、adapter 入口,通过 docker buildx bake 并行构建所有服务镜像,生成 juwan/<service>-<type>:dev。
端到端接口测试走网关 http://127.0.0.1:18080,18801-18814 是各服务的直连端口,不经过认证链路。
如需只启动部分服务:
docker compose up -d postgres redis snowflake player-rpc player-api
端口映射
| 服务 | 宿主机端口 |
|---|---|
| PostgreSQL | 15432 |
| Redis | 16379 |
| Kafka | 19092 |
| Envoy Gateway | 18080 |
| users-api | 18801 |
| player-api | 18802 |
| game-api | 18803 |
| shop-api | 18804 |
| order-api | 18805 |
| wallet-api | 18806 |
| community-api | 18807 |
| objectstory-api | 18808 |
| email-api | 18809 |
| chat-api | 18810 |
| review-api | 18811 |
| dispute-api | 18812 |
| notification-api | 18813 |
| search-api | 18814 |
环境变量
编辑 .env 修改数据库密码、Kafka 地址等。默认值可直接用于本地开发。
管理员账户通过环境变量配置,users-rpc 启动时自动初始化:
| 变量 | 说明 | 默认值 |
|---|---|---|
| ADMIN_USERNAME | 管理员用户名 | admin |
| ADMIN_PASSWORD | 管理员密码 | admin123 |
| ADMIN_EMAIL | 管理员邮箱 | admin@juwan.dev |
认证
登录和注册通过 users-api 下发 JToken Cookie。envoy-gateway 负责 JWT 校验并注入认证头,authz-adapter 做会话态二次校验,后端服务只消费 x-auth-user-id 等头。
写接口需要先 GET /healthz 领取 XSRF-TOKEN 和 XSRF-GUARD,再在请求头带上 xsrf-token。
注册和密码重置都需要先调验证码接口拿到 requestId,再把它放到 X-Request-Id 请求头里发后续请求。
数据库初始化
首次启动时 PostgreSQL 会自动执行 desc/sql/ 下的建表语句。如需重新初始化,删除 volume 后重启:
docker compose down -v
docker compose up -d