chore: track Linux deploy scripts with forced git pull
Ship start/restart/pull-and-restart and deploy lib so production can one-line update; git_pull_hard uses checkout -f, restart --pull aligns then restarts.
This commit is contained in:
48
restart.sh
Normal file
48
restart.sh
Normal file
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env bash
|
||||
# AI 建站 — 重启
|
||||
# 用法:
|
||||
# ./restart.sh # 不拉代码:停 → 构建 → 起
|
||||
# ./restart.sh --pull # 强制对齐远程后再重启(生产一键更新)
|
||||
# ./restart.sh --no-rebuild # 重启但不强制重建镜像
|
||||
set -euo pipefail
|
||||
ROOT="$(cd "$(dirname "$0")" && pwd)"
|
||||
cd "$ROOT"
|
||||
# shellcheck disable=SC1091
|
||||
. "$ROOT/scripts/lib-aijz-deploy.sh"
|
||||
|
||||
REBUILD=1
|
||||
DO_PULL=0
|
||||
for a in "$@"; do
|
||||
case "$a" in
|
||||
--pull|--update) DO_PULL=1 ;;
|
||||
--no-pull) DO_PULL=0 ;;
|
||||
--no-rebuild) REBUILD=0 ;;
|
||||
-h|--help)
|
||||
echo "用法: $0 [--pull|--update] [--no-rebuild]"
|
||||
echo " 默认不拉代码;--pull 时 git fetch + checkout -f + reset --hard 对齐远程后重启"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
echo "========================================"
|
||||
echo " AI 建站 重启"
|
||||
echo " 路径: $ROOT"
|
||||
if [ "$DO_PULL" = "1" ]; then
|
||||
echo " 拉取: 是(强制对齐 ${GIT_BRANCH:-main})"
|
||||
else
|
||||
echo " 拉取: 否(加 --pull 可拉代码)"
|
||||
fi
|
||||
echo "========================================"
|
||||
|
||||
ensure_docker
|
||||
ensure_env_file
|
||||
export_defaults
|
||||
if [ "$DO_PULL" = "1" ]; then
|
||||
git_pull_hard
|
||||
fi
|
||||
stack_down
|
||||
sleep 1
|
||||
stack_up "$REBUILD"
|
||||
healthcheck
|
||||
print_endpoints
|
||||
Reference in New Issue
Block a user