玩值电竞App - Docker 运行与配置说明
玩值电竞 Web 已并入 website 编排:与神射手等同在 website 项目下,容器名
website-wanzhi-web,端口 3001。
只使用唯一 MongoDB:datacenter_mongodb(宿主机 27017),不新建 MongoDB;库 wanzhi_esports 只存在该实例。详见卡若AI 工作台《唯一MongoDB约定.md》。
约定:
- 访问:前端/API 用 http://localhost:3001;数据库用唯一 MongoDB(datacenter_mongodb 27017),库名 wanzhi_esports。
- 一律用 Docker 跑网站,不用 pnpm dev:启动、运行、部署均在神射手目录执行
docker compose up -d --build(须带--build,确保容器内是本地最新代码)。建索引/种子在项目根目录执行bash docker/部署并运行.sh。 - 本地更新后同步到 Docker:每次改完代码/内容,要让 Docker 跑最新,须在神射手目录执行
docker compose up -d --build,否则容器内仍是旧镜像。 - 卡若AI 回答玩值电竞部署/运行/访问时,须用卡若复盘格式回复。
一、部署与运行(仅 Web 容器,连接现有 MongoDB)
推荐:从 website 编排统一启动(含神射手 + 玩值电竞),使用唯一 MongoDB(datacenter_mongodb 27017):
# 若曾单独起过 wanzhi-website,请先在玩值电竞App 目录执行:docker compose down
# 在神射手目录执行(--build 确保用本地最新代码构建并启动)
cd "/Users/karuo/Documents/开发/2、私域银行/神射手"
docker compose up -d --build
直接使用最新(推荐):在玩值电竞App 根目录执行一次即可无缓存重建并启动,后台顶栏会显示本次部署时间。
pnpm docker:latest
# 或
bash docker/使用最新并启动.sh
同步本地最新到 Docker:也可在神射手目录执行 docker compose up -d --build;若需在后台看到「部署:xxx」确认时间,请先 export BUILD_TIME=$(date -u +%Y-%m-%dT%H:%M:%SZ) 再 build。
本仓库仅建索引/种子时在项目根目录执行(连接唯一 MongoDB):
MONGODB_URI=mongodb://localhost:27017 pnpm db:mongo:indexes
# 可选:MONGODB_URI=mongodb://localhost:27017 pnpm db:mongo:seed
- Docker Desktop:在「Containers」中见 website 下 website-shensheshou、website-wanzhi-web,无独立 MongoDB 容器。
- 唯一 MongoDB:datacenter_mongodb(27017),玩值电竞库 wanzhi_esports 只存在该实例。
- 玩值电竞网页:http://localhost:3001
二、访问地址
| 用途 | 地址 |
|---|---|
| 前端/API(所有网页) | http://localhost:3001 |
| MongoDB | 唯一实例 datacenter_mongodb,localhost:27017(库 wanzhi_esports) |
三、环境变量与配置
| 变量 | 说明 | Docker 内 |
|---|---|---|
MONGODB_URI |
MongoDB 连接串 | mongodb://host.docker.internal:27017(指向本机现有实例) |
NODE_ENV |
运行环境 | production |
- 容器内通过
host.docker.internal:27017访问本机 MongoDB;库名wanzhi_esports在应用内固定。
四、常用命令
| 操作 | 命令 |
|---|---|
| 启动 | docker compose up -d |
| 重建并启动 | docker compose up -d --build |
| 停止 | docker compose down |
| 查看日志 | docker compose logs -f web |
| 进入 Web 容器 | docker compose exec web sh |
| 本机建索引/种子 | MONGODB_URI=mongodb://localhost:27017 pnpm db:mongo:indexes / pnpm db:mongo:seed |
五、API 接口一览
所有接口前缀:http://localhost:3001/api。
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/games |
游戏列表(本机 MongoDB wanzhi_esports.games) |
| 管理端 | /api/admin/* |
见项目内管理后台与 API 文档 |
六、代码/风格更新后同步到本地 Docker 网站
每次完成前端或管理后台改动(例如新风格、新页面)后,要让本地 Docker 网站显示更新,任选其一执行。
方式 A(推荐):在玩值电竞App 项目根目录执行一键脚本(会到神射手目录重建 wanzhi-web 并启动):
cd "/Users/karuo/Documents/开发/3、自营项目/玩值电竞App"
bash docker/更新并同步到本地网站.sh
方式 B:在神射手目录执行 website 编排,只重建并启动玩值电竞容器:
cd "/Users/karuo/Documents/开发/2、私域银行/神射手"
docker compose build wanzhi-web --no-cache
docker compose up -d wanzhi-web
方式 C:在神射手目录重建并启动全部 website 服务(神射手 + 玩值电竞):
cd "/Users/karuo/Documents/开发/2、私域银行/神射手"
docker compose up -d --build
执行后访问 http://localhost:3001,管理后台 http://localhost:3001/admin 即可看到最新内容。
七、端口冲突时:结束占用并重新部署到该端口
若卡若AI/玩值AI 登记的网站端口 3002 被占用,不改为其他端口,按下列步骤结束占用进程后重新部署到 3002:
# 查占用 3002 的进程
lsof -i :3002
# 结束该进程(将 <PID> 换为实际 PID)
kill <PID>
# 重新部署到 3002
cd 项目根目录 && bash docker/部署并运行.sh
八、打开 Docker 图形界面
在项目根目录执行 ./docker/打开Docker界面.command,或双击该文件。界面中仅见 wanzhi-website 下的 wanzhi-web。