feat: add git pull as first deploy step, remove embedded MySQL wait logic

This commit is contained in:
2026-06-20 23:09:48 +08:00
parent 4d04153d61
commit ca2e294735
+12 -19
View File
@@ -18,7 +18,15 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR" cd "$SCRIPT_DIR"
# ---------------------------------------------------------- # ----------------------------------------------------------
# 1. 检查 Docker 环境 # 1. 拉取最新代码
# ----------------------------------------------------------
pull_latest() {
info "拉取最新代码..."
git pull --rebase || warn "git pull 失败,将使用本地代码继续构建"
}
# ----------------------------------------------------------
# 2. 检查 Docker 环境
# ---------------------------------------------------------- # ----------------------------------------------------------
check_docker() { check_docker() {
if ! command -v docker &>/dev/null; then if ! command -v docker &>/dev/null; then
@@ -31,7 +39,7 @@ check_docker() {
} }
# ---------------------------------------------------------- # ----------------------------------------------------------
# 2. 配置 Docker 国内镜像加速 # 3. 配置 Docker 国内镜像加速
# ---------------------------------------------------------- # ----------------------------------------------------------
setup_docker_mirror() { setup_docker_mirror() {
local daemon_json="/etc/docker/daemon.json" local daemon_json="/etc/docker/daemon.json"
@@ -60,7 +68,7 @@ setup_docker_mirror() {
} }
# ---------------------------------------------------------- # ----------------------------------------------------------
# 3. 读取 .env 配置文件 # 4. 读取 .env 配置文件
# ---------------------------------------------------------- # ----------------------------------------------------------
load_env() { load_env() {
if [ ! -f ".env" ]; then if [ ! -f ".env" ]; then
@@ -90,22 +98,6 @@ build_and_start() {
info "启动服务..." info "启动服务..."
docker compose up -d docker compose up -d
info "等待 MySQL 就绪..."
local retries=30
while [ $retries -gt 0 ]; do
if docker compose exec -T mysql mysqladmin ping -h localhost --silent 2>/dev/null; then
info "MySQL 就绪"
break
fi
retries=$((retries - 1))
sleep 2
done
if [ $retries -eq 0 ]; then
warn "MySQL 启动超时,继续等待应用自行重连..."
sleep 10
fi
info "等待应用启动..." info "等待应用启动..."
sleep 3 sleep 3
@@ -132,6 +124,7 @@ build_and_start() {
main() { main() {
info "开始部署 PR-Helper..." info "开始部署 PR-Helper..."
pull_latest
check_docker check_docker
setup_docker_mirror setup_docker_mirror
load_env load_env