修正了部署脚本
parent
c76d05edb4
commit
dbf6f72dac
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
确保接入层反向代理证书文件权限正确
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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}"
|
||||
|
|
|
|||
Loading…
Reference in New Issue