初步增加, 扫码登录成功
This commit is contained in:
@@ -35,9 +35,15 @@ DB_POOL_SIZE="${DB_POOL_SIZE:-20}"
|
||||
DB_MAX_OVERFLOW="${DB_MAX_OVERFLOW:-20}"
|
||||
DB_POOL_TIMEOUT="${DB_POOL_TIMEOUT:-30}"
|
||||
DB_POOL_RECYCLE="${DB_POOL_RECYCLE:-1800}"
|
||||
YYB_WORKER_PORT="${YYB_WORKER_PORT:-8810}"
|
||||
YYB_WORKER_IMAGE="${YYB_WORKER_IMAGE:-douyu-yyb-worker:local}"
|
||||
DEV_YYB_WORKER_URL="${DEV_YYB_WORKER_URL:-http://127.0.0.1:${YYB_WORKER_PORT}}"
|
||||
YYB_WORKER_CONTAINER="${YYB_WORKER_CONTAINER:-douyu-yyb-worker-dev}"
|
||||
YYB_WORKER_DATA_DIR="${YYB_WORKER_DATA_DIR:-$ROOT_DIR/data/yyb-worker-dev}"
|
||||
|
||||
BACKEND_PID=""
|
||||
FRONTEND_PID=""
|
||||
WORKER_STARTED_BY_DEV=false
|
||||
|
||||
stop_tree() {
|
||||
local pid="$1"
|
||||
@@ -56,6 +62,9 @@ cleanup() {
|
||||
trap - EXIT INT TERM
|
||||
stop_tree "$FRONTEND_PID"
|
||||
stop_tree "$BACKEND_PID"
|
||||
if [ "$WORKER_STARTED_BY_DEV" = true ]; then
|
||||
docker stop "$YYB_WORKER_CONTAINER" >/dev/null 2>&1 || true
|
||||
fi
|
||||
}
|
||||
|
||||
require_cmd() {
|
||||
@@ -108,6 +117,11 @@ if [ -z "$DB_PASSWORD" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "${YYB_WORKER_KEY:-}" ]; then
|
||||
echo "请先在 .env 中设置 YYB_WORKER_KEY"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
COMPOSE=$(detect_compose)
|
||||
if [ -z "$COMPOSE" ]; then
|
||||
echo "缺少 docker compose"
|
||||
@@ -117,6 +131,48 @@ BACKEND_PROXY_HOST="${BACKEND_PROXY_HOST:-$(detect_backend_proxy_host)}"
|
||||
BACKEND_PROXY_TARGET="${VITE_BACKEND_TARGET:-http://${BACKEND_PROXY_HOST}:${BACKEND_PORT}}"
|
||||
|
||||
mkdir -p data logs
|
||||
mkdir -p "$YYB_WORKER_DATA_DIR"
|
||||
|
||||
trap cleanup EXIT INT TERM
|
||||
|
||||
start_yyb_worker() {
|
||||
if docker ps --format '{{.Names}}' | grep -qx "$YYB_WORKER_CONTAINER"; then
|
||||
echo "本地 YYB Worker 已运行: ${DEV_YYB_WORKER_URL}"
|
||||
return
|
||||
fi
|
||||
if docker ps -a --format '{{.Names}}' | grep -qx "$YYB_WORKER_CONTAINER"; then
|
||||
echo "发现已停止的本地 YYB Worker,正在清理旧容器..."
|
||||
docker rm "$YYB_WORKER_CONTAINER" >/dev/null
|
||||
fi
|
||||
|
||||
echo "正在构建本地 YYB Worker..."
|
||||
YYB_WORKER_KEY="$YYB_WORKER_KEY" $COMPOSE build yyb-worker
|
||||
echo "正在启动本地 YYB Worker..."
|
||||
docker run -d --rm \
|
||||
--name "$YYB_WORKER_CONTAINER" \
|
||||
-p "127.0.0.1:${YYB_WORKER_PORT}:8810" \
|
||||
-e TZ="${TZ:-Asia/Shanghai}" \
|
||||
-e YYB_WORKER_KEY="$YYB_WORKER_KEY" \
|
||||
-v "$YYB_WORKER_DATA_DIR:/app/config/worker-jobs" \
|
||||
"$YYB_WORKER_IMAGE" >/dev/null
|
||||
WORKER_STARTED_BY_DEV=true
|
||||
|
||||
echo "等待本地 YYB Worker 就绪..."
|
||||
for i in $(seq 1 15); do
|
||||
if curl -fsS "${DEV_YYB_WORKER_URL}/health" >/dev/null 2>&1; then
|
||||
echo "YYB Worker 已就绪"
|
||||
return
|
||||
fi
|
||||
if [ "$i" = "15" ]; then
|
||||
echo "YYB Worker 启动超时,查看日志:"
|
||||
docker logs "$YYB_WORKER_CONTAINER" || true
|
||||
exit 1
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
}
|
||||
|
||||
start_yyb_worker
|
||||
|
||||
echo "正在启动本地 MySQL..."
|
||||
MYSQL_IMAGE="$MYSQL_IMAGE" \
|
||||
@@ -146,12 +202,11 @@ echo " 后端: http://${BACKEND_HOST}:${BACKEND_PORT}"
|
||||
echo " 前端: http://localhost:${FRONTEND_PORT}"
|
||||
echo " API 代理: ${BACKEND_PROXY_TARGET}"
|
||||
echo " MySQL: ${DB_HOST}:${DB_PORT}/${DB_NAME}"
|
||||
echo " YYB Worker: ${DEV_YYB_WORKER_URL}"
|
||||
echo " 退出: Ctrl+C"
|
||||
echo "=============================="
|
||||
echo ""
|
||||
|
||||
trap cleanup EXIT INT TERM
|
||||
|
||||
DB_HOST="$DB_HOST" \
|
||||
DB_PORT="$DB_PORT" \
|
||||
DB_NAME="$DB_NAME" \
|
||||
@@ -161,6 +216,8 @@ DB_POOL_SIZE="$DB_POOL_SIZE" \
|
||||
DB_MAX_OVERFLOW="$DB_MAX_OVERFLOW" \
|
||||
DB_POOL_TIMEOUT="$DB_POOL_TIMEOUT" \
|
||||
DB_POOL_RECYCLE="$DB_POOL_RECYCLE" \
|
||||
YYB_WORKER_URL="$DEV_YYB_WORKER_URL" \
|
||||
YYB_WORKER_KEY="$YYB_WORKER_KEY" \
|
||||
LOG_LEVEL="$LOG_LEVEL" \
|
||||
uv run uvicorn web.backend.main:app \
|
||||
--host "$BACKEND_HOST" \
|
||||
|
||||
Reference in New Issue
Block a user