This commit is contained in:
wchino
2026-06-13 17:38:25 +08:00
parent e7e938f261
commit 7b33d9f9fa
190 changed files with 23222 additions and 4336 deletions

View File

@@ -285,15 +285,14 @@ cp /root/thebet365.env.docker.bak .env.docker 2>/dev/null || cp .env.docker.exam
|------|------|
| `POSTGRES_PASSWORD` | 数据库密码 |
| `JWT_SECRET` | 足够长的随机字符串 |
| `SEED_DATABASE` | 首次部署可 `true`,种子跑完后改 `false` 并重启 api |
| `SEED_DATABASE` | 生产建议保持 `false`,首次部署脚本会按需一次性 seed |
构建并启动(首次约 1020 分钟,**勿提前关终端**
```bash
cd /www/wwwroot/thebet365
docker compose -f docker-compose.prod.yml --env-file .env.docker build --no-cache 2>&1 | tee /tmp/thebet365-build.log
docker compose -f docker-compose.prod.yml --env-file .env.docker up -d
chmod +x scripts/*.sh
./scripts/deploy-first.sh
```
查看状态(须带 `--env-file .env.docker`
@@ -312,7 +311,8 @@ docker compose -f docker-compose.prod.yml --env-file .env.docker ps
|------|------|
| 玩家前台 | `http://你的IP:8082` |
| 管理后台 | `http://你的IP:8081` |
| API / Swagger | `http://你的IP:3000/api/docs` |
生产 compose 不公网映射 API 端口,玩家端/管理端容器会通过内部 Docker 网络访问 API。
### 8.3 Gitea 私有仓库认证
@@ -384,11 +384,10 @@ git push
```bash
cd /www/wwwroot/thebet365
git pull
docker compose -f docker-compose.prod.yml --env-file .env.docker up -d --build
./scripts/deploy-update.sh --pull
```
- 仅改文档、未改代码/依赖时,可省略 `--build``up -d` 即可
- 更新脚本会先备份数据库,再构建新镜像、执行 Prisma 迁移并替换容器
- **不要**把 `.env.docker` 提交到 Git服务器上单独保留
- `release/*.zip` 为旧打包方式Git 同步后不必再生成上传
@@ -408,19 +407,17 @@ cd /www/wwwroot/thebet365
# 容器是否在跑
docker compose -f docker-compose.prod.yml --env-file .env.docker ps
# 构建失败时看日志
tail -50 /tmp/thebet365-build.log
# 容器启动失败时看日志
docker compose -f docker-compose.prod.yml --env-file .env.docker logs --tail=30 player
docker compose -f docker-compose.prod.yml --env-file .env.docker logs --tail=30 api
# 本机探测(在服务器上)
curl -I http://127.0.0.1:8082
curl -I http://127.0.0.1:3000/api/docs
```
**`ps` 为空**:说明从未成功 `up`,或构建被中断 — 重新执行 8.2 中的 `build` + `up`
**`ps` 为空**:说明从未成功部署,或构建被中断 — 重新执行 8.2 中的 `./scripts/deploy-first.sh`
**终端被关掉**:构建可能仍在后台跑,也可能已失败;用上面命令查 `ps` `/tmp/thebet365-build.log`
**终端被关掉**:构建可能仍在后台跑,也可能已失败;用上面命令查 `ps`容器日志
### 8.6 从 zip 迁移到 Git一次性
@@ -508,8 +505,8 @@ pnpm db:seed
- 未加 `--env-file .env.docker` 时可能看不到本项目容器,请用:
`docker compose -f docker-compose.prod.yml --env-file .env.docker ps`
- 若仍为空:构建未完成或失败,重新 `build --no-cache``up -d`,见 **第八节 8.5**
- 构建日志:`tail -50 /tmp/thebet365-build.log`
- 若仍为空:构建未完成或失败,重新执行 `./scripts/deploy-first.sh`,见 **第八节 8.5**
- 构建失败原因以部署脚本当前终端输出为准;容器启动失败再看 `docker compose logs`
### 10. 服务器 player 构建报 `ENOENT ... public/球员`
@@ -520,7 +517,7 @@ pnpm db:seed
find packages/shared/public -mindepth 1 -maxdepth 1 -type d \
! -name flags ! -name players -exec rm -rf {} +
docker compose -f docker-compose.prod.yml --env-file .env.docker build --no-cache player admin
docker compose -f docker-compose.prod.yml --env-file .env.docker up -d
./scripts/deploy-update.sh --no-build
```
### 11. 宝塔 Redis 里看到 `lottery-database-*` 等 key