You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
chajia/deploy/verify-upload-bt-host-mysql.sh

78 lines
2.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#!/usr/bin/env bash
# 上传后自检:代码是否到位、.env 是否含 Flock、容器是否在跑旧镜像
# 用法cd /home/project/chajia && bash deploy/verify-upload-bt-host-mysql.sh
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
ENV_FILE="${ROOT_DIR}/.env"
COMPOSE_FILE="${ROOT_DIR}/deploy/docker-compose.bt-host-mysql.yml"
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
ok() { echo -e "${GREEN}[OK]${NC} $*"; }
bad() { echo -e "${RED}[缺]${NC} $*"; }
warn() { echo -e "${YELLOW}[注意]${NC} $*"; }
cd "$ROOT_DIR"
fail=0
echo "=== 1) 磁盘上的新代码(上传是否落到正确目录)==="
for p in \
"app/api/flock/quotes/route.ts" \
"workers/rpa/flock-freight.ts" \
"workers/rpa/mothership-logged-in-quote.ts" \
"deploy/update-code-only-bt-host-mysql.sh" \
"deploy/datagrip-manual-migrate-20260716.sql"
do
if [[ -f "$ROOT_DIR/$p" ]]; then ok "$p"; else bad "$p"; fail=1; fi
done
echo ""
echo "=== 2) .env 新参数(不重建也会导致前端看不到 Flock==="
if [[ ! -f "$ENV_FILE" ]]; then
bad "没有 .env"
fail=1
else
for key in FLOCK_RPA_ENABLED FLOCK_QUOTE_MODE NEXT_PUBLIC_FLOCK_POLL_TIMEOUT_MS; do
if grep -qE "^[[:space:]]*${key}=" "$ENV_FILE"; then
ok "$key=$(grep -E "^[[:space:]]*${key}=" "$ENV_FILE" | tail -1 | cut -d= -f2-)"
else
bad ".env 缺少 $key"
fail=1
fi
done
if grep -qE "^[[:space:]]*RPA_BROWSER_CHANNEL=chrome" "$ENV_FILE"; then
bad "存在 RPA_BROWSER_CHANNEL=chromeDocker 会挂,请删除)"
fail=1
else
ok "未设置 RPA_BROWSER_CHANNEL=chrome"
fi
fi
echo ""
echo "=== 3) 容器是否在跑(上传源码不会自动进镜像)==="
if docker compose --env-file "$ENV_FILE" -f "$COMPOSE_FILE" ps 2>/dev/null | grep -q next-app; then
docker compose --env-file "$ENV_FILE" -f "$COMPOSE_FILE" ps
warn "若刚上传代码但未执行 update-code-only容器仍是旧镜像 → 页面无新功能"
else
bad "compose 未检测到 next-app请检查路径/compose 文件"
fail=1
fi
echo ""
echo "=== 4) 结论 ==="
if [[ $fail -ne 0 ]]; then
bad "自检未通过。先补齐缺失项,再执行:"
echo " bash deploy/update-code-only-bt-host-mysql.sh"
exit 1
fi
ok "磁盘代码与 .env 看起来齐全。"
warn "若页面仍是旧版:必须重建镜像(上传 ≠ 生效):"
echo " bash deploy/update-code-only-bt-host-mysql.sh"
echo " docker compose --env-file .env -f deploy/docker-compose.bt-host-mysql.yml exec redis redis-cli FLUSHDB"