修正了部署脚本

codex/dev
mula.liu 2026-04-13 17:55:39 +08:00
parent c76d05edb4
commit dbf6f72dac
4 changed files with 27 additions and 27 deletions

View File

@ -2,13 +2,13 @@
# 1. 默认 Docker 一体化部署(./start.sh / docker-compose.yml
# 只使用当前文件(根目录 .env和 Docker Compose 注入的环境变量,不读取 backend/.env。
# 2. 直接运行后端或外接中间件部署:
# 后端可读取当前文件中的 MYSQL_HOST / REDIS_HOST
# 也可改用 backend/.env 中的 DB_* / REDIS_* 配置
# `start-external.sh` 也只读取当前文件;
# 外接中间件时可直接在这里填写 MYSQL_* / REDIS_*,脚本会转换给后端使用
# ==================== 数据库配置 ====================
# MySQL 初始化参数Docker 内置 MySQL
# 当后端也运行在 Docker 中时,数据库主机应为服务名 `mysql`。
# 只有在宿主机直接运行后端时,才需要改成 127.0.0.1 或实际地址
# 使用 `./start-external.sh` 时,请改成外部 MySQL 地址或服务名
MYSQL_HOST=mysql
MYSQL_ROOT_PASSWORD=change_this_password
MYSQL_DATABASE=imeeting
@ -19,7 +19,7 @@ MYSQL_PORT=3306
# ==================== 缓存配置 ====================
# Redis 初始化参数Docker 内置 Redis
# 当后端也运行在 Docker 中时Redis 主机应为服务名 `redis`。
# 只有在宿主机直接运行后端时,才需要改成 127.0.0.1 或实际地址
# 使用 `./start-external.sh` 时,请改成外部 Redis 地址或服务名
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=change_this_password

View File

@ -121,18 +121,21 @@ HTTPS_PORT=443
### 外接 MySQL / Redis 部署
如果使用 `./start-external.sh`还需要额外配置 `backend/.env`
如果使用 `./start-external.sh`直接修改根目录 `.env` 即可,不需要 `backend/.env`
```bash
cp backend/.env.example backend/.env
vim backend/.env
cp .env.example .env
vim .env
```
`backend/.env` 主要负责
根目录 `.env` 里需要重点配置
- `DB_HOST` / `DB_PORT` / `DB_USER` / `DB_PASSWORD` / `DB_NAME`
- `MYSQL_HOST` / `MYSQL_PORT` / `MYSQL_USER` / `MYSQL_PASSWORD` / `MYSQL_DATABASE`
- `REDIS_HOST` / `REDIS_PORT` / `REDIS_DB` / `REDIS_PASSWORD`
- 可选的 `BASE_URL`(如显式设置,会覆盖根目录 `.env` 中传给后端容器的值)
- `BASE_URL`
说明:
- `start-external.sh` 会优先读取 `.env` 中的 `DB_*`;如果未设置,则自动回退到 `MYSQL_*`
### 音频预处理依赖
@ -272,7 +275,7 @@ curl http://localhost/docs
|------|----------|
| 端口被占用 | 修改.env中的HTTP_PORT |
| 502错误 | 检查backend和frontend是否健康 |
| 数据库连接失败 | 一体化部署检查 `docker-compose.yml` 和根目录 `.env`,外接中间件模式检查 `backend/.env` |
| 数据库连接失败 | 检查根目录 `.env` 中的数据库配置;外接中间件模式确认 `MYSQL_HOST` / `DB_HOST` 是否正确 |
| 前端无法访问API | 检查VITE_API_BASE_URL配置 |
| 音频转录拉不到音频文件 | 检查 `BASE_URL` 是否为云端可访问的完整地址 |
| 如何配置HTTPS | 参考本文档中的反向代理章节 |
@ -343,7 +346,7 @@ docker-compose exec mysql mysqldump -uroot -p imeeting > backup.sql
tar czf imeeting_backup_$(date +%Y%m%d).tar.gz data/
# 备份配置
tar czf imeeting_config_$(date +%Y%m%d).tar.gz .env backend/.env frontend/nginx.conf
tar czf imeeting_config_$(date +%Y%m%d).tar.gz .env frontend/nginx.conf
```
### 恢复数据
@ -371,7 +374,7 @@ tar xzf imeeting_backup_20240101.tar.gz
3. ✅ **设置文件权限**
```bash
chmod 600 .env backend/.env
chmod 600 .env
确保接入层反向代理证书文件权限正确
```

View File

@ -1,5 +1,5 @@
# ==================== 数据库配置 ====================
# 供“直接运行 backend”或“./start-external.sh 外接 MySQL/Redis”使用
# 供“宿主机直接运行 backend”使用
# 如果 backend 运行在 Docker 中,且数据库也在同一 Docker 网络,主机名应填服务名(如 mysql
# 如果是宿主机直接运行 backend再填写 127.0.0.1 或实际地址
DB_HOST=127.0.0.1

View File

@ -71,15 +71,7 @@ check_env_files() {
if [ ! -f .env ]; then
print_warning ".env 文件不存在,从模板创建..."
cp .env.example .env
print_warning "请编辑 .env 文件配置访问端口、BASE_URL 等参数"
print_warning "按任意键继续,或 Ctrl+C 退出..."
read -n 1 -s
fi
if [ ! -f backend/.env ]; then
print_warning "backend/.env 文件不存在,从模板创建..."
cp backend/.env.example backend/.env
print_warning "请编辑 backend/.env 文件,配置外部数据库和 Redis 参数"
print_warning "请编辑 .env 文件,配置外部 MySQL / Redis、访问端口、BASE_URL 等参数"
print_warning "按任意键继续,或 Ctrl+C 退出..."
read -n 1 -s
fi
@ -91,10 +83,15 @@ load_external_env() {
print_info "加载外部数据库与 Redis 配置..."
set -a
source backend/.env
source .env
set +a
DB_PORT="${DB_PORT:-3306}"
DB_HOST="${DB_HOST:-${MYSQL_HOST:-}}"
DB_PORT="${DB_PORT:-${MYSQL_PORT:-3306}}"
DB_USER="${DB_USER:-${MYSQL_USER:-}}"
DB_PASSWORD="${DB_PASSWORD:-${MYSQL_PASSWORD:-}}"
DB_NAME="${DB_NAME:-${MYSQL_DATABASE:-}}"
REDIS_PORT="${REDIS_PORT:-6379}"
REDIS_DB="${REDIS_DB:-0}"
REDIS_PASSWORD="${REDIS_PASSWORD:-}"
@ -102,7 +99,7 @@ load_external_env() {
local required_vars=(DB_HOST DB_USER DB_PASSWORD DB_NAME REDIS_HOST)
for var_name in "${required_vars[@]}"; do
if [ -z "${!var_name}" ]; then
print_error "backend/.env 缺少必填配置: ${var_name}"
print_error ".env 缺少必填配置: ${var_name}"
exit 1
fi
done
@ -195,7 +192,7 @@ show_access_info() {
echo ""
echo -e "${YELLOW}当前模式:${NC}"
echo -e " 仅启动: ${BLUE}backend + frontend${NC}"
echo -e " 外部依赖: ${BLUE}backend/.env 中配置的 MySQL / Redis${NC}"
echo -e " 外部依赖: ${BLUE}根目录 .env 中配置的 MySQL / Redis${NC}"
echo ""
echo -e "${YELLOW}常用命令:${NC}"
echo -e " 查看日志: ${BLUE}$COMPOSE_CMD logs -f backend frontend${NC}"