修复虎牙手机号登录并统一部署项目名
This commit is contained in:
@@ -6,6 +6,15 @@ set -euo pipefail
|
||||
ROOT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
cd "$ROOT_DIR"
|
||||
|
||||
# 目录改名后,旧 shell 可能仍携带 douyu_login_py/.venv;交给 uv 选择当前项目环境。
|
||||
if [ "${VIRTUAL_ENV:-}" != "$ROOT_DIR/.venv" ]; then
|
||||
unset VIRTUAL_ENV
|
||||
fi
|
||||
|
||||
# 使用新的项目标识;可通过环境变量覆盖。
|
||||
COMPOSE_PROJECT_NAME="${COMPOSE_PROJECT_NAME:-live-hub-py}"
|
||||
export COMPOSE_PROJECT_NAME
|
||||
|
||||
if [ -f "$ROOT_DIR/.env" ]; then
|
||||
set -a
|
||||
# 调试模式复用 Docker 部署的环境变量,尤其是 JWT 和敏感字段加密密钥。
|
||||
@@ -14,6 +23,17 @@ if [ -f "$ROOT_DIR/.env" ]; then
|
||||
set +a
|
||||
fi
|
||||
|
||||
# 迁移期间优先复用旧项目卷,避免目录改名导致创建空数据库。
|
||||
MYSQL_VOLUME_NAME="${MYSQL_VOLUME_NAME:-}"
|
||||
MYSQL_VOLUME_EXTERNAL="${MYSQL_VOLUME_EXTERNAL:-false}"
|
||||
if [ -z "$MYSQL_VOLUME_NAME" ] && command -v docker >/dev/null 2>&1 \
|
||||
&& docker volume inspect douyu_login_py_mysql-data >/dev/null 2>&1; then
|
||||
MYSQL_VOLUME_NAME="douyu_login_py_mysql-data"
|
||||
MYSQL_VOLUME_EXTERNAL="true"
|
||||
fi
|
||||
export MYSQL_VOLUME_NAME
|
||||
export MYSQL_VOLUME_EXTERNAL
|
||||
|
||||
BACKEND_HOST="${BACKEND_HOST:-0.0.0.0}"
|
||||
# 8800 是项目默认开发端口并由脚本独占;其他显式端口发生冲突时只报错。
|
||||
BACKEND_PORT_EXPLICIT=false
|
||||
@@ -58,22 +78,22 @@ fi
|
||||
# --group dev 确保 pytest 等 dev 依赖已安装。
|
||||
if [ "${1:-}" = "test" ]; then
|
||||
shift
|
||||
exec uv run --group dev pytest "$@"
|
||||
exec uv run --group dev python -m pytest "$@"
|
||||
fi
|
||||
|
||||
if [ "${1:-}" = "format" ]; then
|
||||
shift
|
||||
exec uv run --group dev ruff format "$@"
|
||||
exec uv run --group dev python -m ruff format "$@"
|
||||
fi
|
||||
|
||||
if [ "${1:-}" = "format-check" ]; then
|
||||
shift
|
||||
exec uv run --group dev ruff format --check "$@"
|
||||
exec uv run --group dev python -m ruff format --check "$@"
|
||||
fi
|
||||
|
||||
if [ "${1:-}" = "type-check" ]; then
|
||||
shift
|
||||
exec uv run --group dev pyright "$@"
|
||||
exec uv run --group dev python -m pyright "$@"
|
||||
fi
|
||||
|
||||
BACKEND_PID=""
|
||||
@@ -121,6 +141,20 @@ detect_compose() {
|
||||
fi
|
||||
}
|
||||
|
||||
stop_legacy_containers() {
|
||||
local name project
|
||||
for name in douyu-login-db douyu-login; do
|
||||
if ! docker inspect "$name" >/dev/null 2>&1; then
|
||||
continue
|
||||
fi
|
||||
project="$(docker inspect "$name" --format '{{index .Config.Labels "com.docker.compose.project"}}' 2>/dev/null || true)"
|
||||
if [ -n "$project" ] && [ "$project" != "$COMPOSE_PROJECT_NAME" ]; then
|
||||
echo "停止旧 Compose 项目容器: $name (项目 $project)"
|
||||
docker stop "$name" >/dev/null
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
detect_backend_proxy_host() {
|
||||
if [ "$BACKEND_HOST" != "0.0.0.0" ] && [ "$BACKEND_HOST" != "::" ]; then
|
||||
echo "$BACKEND_HOST"
|
||||
@@ -263,6 +297,7 @@ start_yyb_worker() {
|
||||
}
|
||||
|
||||
echo "正在启动本地 MySQL..."
|
||||
stop_legacy_containers
|
||||
MYSQL_IMAGE="$MYSQL_IMAGE" \
|
||||
MYSQL_BIND_HOST="$MYSQL_BIND_HOST" \
|
||||
MYSQL_HOST_PORT="$MYSQL_HOST_PORT" \
|
||||
@@ -313,7 +348,7 @@ echo ""
|
||||
export DB_POOL_SIZE DB_MAX_OVERFLOW DB_POOL_TIMEOUT DB_POOL_RECYCLE
|
||||
export YYB_WORKER_KEY LOG_LEVEL LOG_DIR
|
||||
export YYB_WORKER_URL="$DEV_YYB_WORKER_URL"
|
||||
uv run uvicorn web.backend.main:app \
|
||||
uv run python -m uvicorn web.backend.main:app \
|
||||
--host "$BACKEND_HOST" \
|
||||
--port "$BACKEND_PORT" \
|
||||
--reload \
|
||||
|
||||
Reference in New Issue
Block a user