Files
wzdj/docker/README.md

137 lines
5.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 玩值电竞App - Docker 运行与配置说明
> **玩值电竞 Web 已并入 website 编排**:与神射手等同在 **website** 项目下,容器名 `website-wanzhi-web`,端口 **3001**。
> **只使用唯一 MongoDB****datacenter_mongodb**(宿主机 27017不新建 MongoDB库 **wanzhi_esports** 只存在该实例。详见卡若AI 工作台《唯一MongoDB约定.md》。
**约定**
- **访问**:前端/API 用 **http://localhost:3001**;数据库用唯一 MongoDBdatacenter_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** 编排统一启动(含神射手 + 玩值电竞),使用唯一 MongoDBdatacenter_mongodb 27017
```bash
# 若曾单独起过 wanzhi-website请先在玩值电竞App 目录执行docker compose down
# 在神射手目录执行(--build 确保用本地最新代码构建并启动)
cd "/Users/karuo/Documents/开发/2、私域银行/神射手"
docker compose up -d --build
```
**直接使用最新**推荐在玩值电竞App 根目录执行一次即可无缓存重建并启动,后台顶栏会显示本次部署时间。
```bash
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
```bash
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_mongodb27017玩值电竞库 wanzhi_esports 只存在该实例。
- **玩值电竞网页**http://localhost:3001
---
## 二、访问地址
| 用途 | 地址 |
|:---|:---|
| 前端/API所有网页 | **http://localhost:3001** |
| MongoDB | **唯一实例** datacenter_mongodblocalhost: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 并启动):
```bash
cd "/Users/karuo/Documents/开发/3、自营项目/玩值电竞App"
bash docker/更新并同步到本地网站.sh
```
**方式 B**:在神射手目录执行 website 编排,只重建并启动玩值电竞容器:
```bash
cd "/Users/karuo/Documents/开发/2、私域银行/神射手"
docker compose build wanzhi-web --no-cache
docker compose up -d wanzhi-web
```
**方式 C**:在神射手目录重建并启动全部 website 服务(神射手 + 玩值电竞):
```bash
cd "/Users/karuo/Documents/开发/2、私域银行/神射手"
docker compose up -d --build
```
执行后访问 **http://localhost:3001**,管理后台 **http://localhost:3001/admin** 即可看到最新内容。
---
## 七、端口冲突时:结束占用并重新部署到该端口
若卡若AI/玩值AI 登记的网站端口 **3002** 被占用,**不改为其他端口**,按下列步骤结束占用进程后重新部署到 3002
```bash
# 查占用 3002 的进程
lsof -i :3002
# 结束该进程(将 <PID> 换为实际 PID
kill <PID>
# 重新部署到 3002
cd 项目根目录 && bash docker/部署并运行.sh
```
---
## 八、打开 Docker 图形界面
在项目根目录执行 `./docker/打开Docker界面.command`,或双击该文件。界面中仅见 **wanzhi-website** 下的 **wanzhi-web**