修正了部署脚本
parent
c76d05edb4
commit
dbf6f72dac
|
|
@ -2,13 +2,13 @@
|
||||||
# 1. 默认 Docker 一体化部署(./start.sh / docker-compose.yml):
|
# 1. 默认 Docker 一体化部署(./start.sh / docker-compose.yml):
|
||||||
# 只使用当前文件(根目录 .env)和 Docker Compose 注入的环境变量,不读取 backend/.env。
|
# 只使用当前文件(根目录 .env)和 Docker Compose 注入的环境变量,不读取 backend/.env。
|
||||||
# 2. 直接运行后端或外接中间件部署:
|
# 2. 直接运行后端或外接中间件部署:
|
||||||
# 后端可读取当前文件中的 MYSQL_HOST / REDIS_HOST,
|
# `start-external.sh` 也只读取当前文件;
|
||||||
# 也可改用 backend/.env 中的 DB_* / REDIS_* 配置。
|
# 外接中间件时可直接在这里填写 MYSQL_* / REDIS_*,脚本会转换给后端使用。
|
||||||
|
|
||||||
# ==================== 数据库配置 ====================
|
# ==================== 数据库配置 ====================
|
||||||
# MySQL 初始化参数(Docker 内置 MySQL)。
|
# MySQL 初始化参数(Docker 内置 MySQL)。
|
||||||
# 当后端也运行在 Docker 中时,数据库主机应为服务名 `mysql`。
|
# 当后端也运行在 Docker 中时,数据库主机应为服务名 `mysql`。
|
||||||
# 只有在宿主机直接运行后端时,才需要改成 127.0.0.1 或实际地址。
|
# 使用 `./start-external.sh` 时,请改成外部 MySQL 地址或服务名。
|
||||||
MYSQL_HOST=mysql
|
MYSQL_HOST=mysql
|
||||||
MYSQL_ROOT_PASSWORD=change_this_password
|
MYSQL_ROOT_PASSWORD=change_this_password
|
||||||
MYSQL_DATABASE=imeeting
|
MYSQL_DATABASE=imeeting
|
||||||
|
|
@ -19,7 +19,7 @@ MYSQL_PORT=3306
|
||||||
# ==================== 缓存配置 ====================
|
# ==================== 缓存配置 ====================
|
||||||
# Redis 初始化参数(Docker 内置 Redis)。
|
# Redis 初始化参数(Docker 内置 Redis)。
|
||||||
# 当后端也运行在 Docker 中时,Redis 主机应为服务名 `redis`。
|
# 当后端也运行在 Docker 中时,Redis 主机应为服务名 `redis`。
|
||||||
# 只有在宿主机直接运行后端时,才需要改成 127.0.0.1 或实际地址。
|
# 使用 `./start-external.sh` 时,请改成外部 Redis 地址或服务名。
|
||||||
REDIS_HOST=redis
|
REDIS_HOST=redis
|
||||||
REDIS_PORT=6379
|
REDIS_PORT=6379
|
||||||
REDIS_PASSWORD=change_this_password
|
REDIS_PASSWORD=change_this_password
|
||||||
|
|
|
||||||
|
|
@ -121,18 +121,21 @@ HTTPS_PORT=443
|
||||||
|
|
||||||
### 外接 MySQL / Redis 部署
|
### 外接 MySQL / Redis 部署
|
||||||
|
|
||||||
如果使用 `./start-external.sh`,还需要额外配置 `backend/.env`:
|
如果使用 `./start-external.sh`,直接修改根目录 `.env` 即可,不需要 `backend/.env`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cp backend/.env.example backend/.env
|
cp .env.example .env
|
||||||
vim backend/.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`
|
- `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 |
|
| 端口被占用 | 修改.env中的HTTP_PORT |
|
||||||
| 502错误 | 检查backend和frontend是否健康 |
|
| 502错误 | 检查backend和frontend是否健康 |
|
||||||
| 数据库连接失败 | 一体化部署检查 `docker-compose.yml` 和根目录 `.env`,外接中间件模式检查 `backend/.env` |
|
| 数据库连接失败 | 检查根目录 `.env` 中的数据库配置;外接中间件模式确认 `MYSQL_HOST` / `DB_HOST` 是否正确 |
|
||||||
| 前端无法访问API | 检查VITE_API_BASE_URL配置 |
|
| 前端无法访问API | 检查VITE_API_BASE_URL配置 |
|
||||||
| 音频转录拉不到音频文件 | 检查 `BASE_URL` 是否为云端可访问的完整地址 |
|
| 音频转录拉不到音频文件 | 检查 `BASE_URL` 是否为云端可访问的完整地址 |
|
||||||
| 如何配置HTTPS | 参考本文档中的反向代理章节 |
|
| 如何配置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_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. ✅ **设置文件权限**
|
3. ✅ **设置文件权限**
|
||||||
```bash
|
```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 运行在 Docker 中,且数据库也在同一 Docker 网络,主机名应填服务名(如 mysql)
|
||||||
# 如果是宿主机直接运行 backend,再填写 127.0.0.1 或实际地址
|
# 如果是宿主机直接运行 backend,再填写 127.0.0.1 或实际地址
|
||||||
DB_HOST=127.0.0.1
|
DB_HOST=127.0.0.1
|
||||||
|
|
|
||||||
|
|
@ -71,15 +71,7 @@ check_env_files() {
|
||||||
if [ ! -f .env ]; then
|
if [ ! -f .env ]; then
|
||||||
print_warning ".env 文件不存在,从模板创建..."
|
print_warning ".env 文件不存在,从模板创建..."
|
||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
print_warning "请编辑 .env 文件,配置访问端口、BASE_URL 等参数"
|
print_warning "请编辑 .env 文件,配置外部 MySQL / Redis、访问端口、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 "按任意键继续,或 Ctrl+C 退出..."
|
print_warning "按任意键继续,或 Ctrl+C 退出..."
|
||||||
read -n 1 -s
|
read -n 1 -s
|
||||||
fi
|
fi
|
||||||
|
|
@ -91,10 +83,15 @@ load_external_env() {
|
||||||
print_info "加载外部数据库与 Redis 配置..."
|
print_info "加载外部数据库与 Redis 配置..."
|
||||||
|
|
||||||
set -a
|
set -a
|
||||||
source backend/.env
|
source .env
|
||||||
set +a
|
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_PORT="${REDIS_PORT:-6379}"
|
||||||
REDIS_DB="${REDIS_DB:-0}"
|
REDIS_DB="${REDIS_DB:-0}"
|
||||||
REDIS_PASSWORD="${REDIS_PASSWORD:-}"
|
REDIS_PASSWORD="${REDIS_PASSWORD:-}"
|
||||||
|
|
@ -102,7 +99,7 @@ load_external_env() {
|
||||||
local required_vars=(DB_HOST DB_USER DB_PASSWORD DB_NAME REDIS_HOST)
|
local required_vars=(DB_HOST DB_USER DB_PASSWORD DB_NAME REDIS_HOST)
|
||||||
for var_name in "${required_vars[@]}"; do
|
for var_name in "${required_vars[@]}"; do
|
||||||
if [ -z "${!var_name}" ]; then
|
if [ -z "${!var_name}" ]; then
|
||||||
print_error "backend/.env 缺少必填配置: ${var_name}"
|
print_error ".env 缺少必填配置: ${var_name}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
@ -195,7 +192,7 @@ show_access_info() {
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "${YELLOW}当前模式:${NC}"
|
echo -e "${YELLOW}当前模式:${NC}"
|
||||||
echo -e " 仅启动: ${BLUE}backend + frontend${NC}"
|
echo -e " 仅启动: ${BLUE}backend + frontend${NC}"
|
||||||
echo -e " 外部依赖: ${BLUE}backend/.env 中配置的 MySQL / Redis${NC}"
|
echo -e " 外部依赖: ${BLUE}根目录 .env 中配置的 MySQL / Redis${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "${YELLOW}常用命令:${NC}"
|
echo -e "${YELLOW}常用命令:${NC}"
|
||||||
echo -e " 查看日志: ${BLUE}$COMPOSE_CMD logs -f backend frontend${NC}"
|
echo -e " 查看日志: ${BLUE}$COMPOSE_CMD logs -f backend frontend${NC}"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue