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:
49
start.sh
Normal file
49
start.sh
Normal file
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
# AI 建站 — Linux 一键启动(Docker Compose)
|
||||
# 用法:cd 项目根 && ./start.sh [--rebuild] [--no-pull]
|
||||
# 默认从 Gitea 强制对齐最新代码再启动(可用 --no-pull / AIJZ_SKIP_GIT_PULL=1 跳过)
|
||||
# 生产一键更新也可用:./restart.sh --pull 或 ./pull-and-restart.sh
|
||||
# 行尾:LF
|
||||
set -euo pipefail
|
||||
ROOT="$(cd "$(dirname "$0")" && pwd)"
|
||||
cd "$ROOT"
|
||||
# shellcheck disable=SC1091
|
||||
. "$ROOT/scripts/lib-aijz-deploy.sh"
|
||||
|
||||
REBUILD=0
|
||||
DO_PULL=1
|
||||
for a in "$@"; do
|
||||
case "$a" in
|
||||
--rebuild|-r) REBUILD=1 ;;
|
||||
--no-pull) DO_PULL=0 ;;
|
||||
--pull) DO_PULL=1 ;;
|
||||
-h|--help)
|
||||
echo "用法: $0 [--rebuild] [--no-pull|--pull]"
|
||||
echo " 默认拉取并硬对齐: ${AIJZ_GIT_URL:-https://gitea.yuxindazhineng.com/whm/ai_site.git} 分支 ${GIT_BRANCH:-main}"
|
||||
echo " 跳过拉取: --no-pull 或 AIJZ_SKIP_GIT_PULL=1"
|
||||
echo " 仅更新重启: ./restart.sh --pull"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
done
|
||||
if [ "${AIJZ_SKIP_GIT_PULL:-0}" = "1" ]; then
|
||||
DO_PULL=0
|
||||
fi
|
||||
|
||||
echo "========================================"
|
||||
echo " AI 建站 启动"
|
||||
echo " 路径: $ROOT"
|
||||
echo "========================================"
|
||||
|
||||
if [ "$DO_PULL" = "1" ]; then
|
||||
git_pull_hard
|
||||
else
|
||||
echo "已跳过代码拉取(--no-pull / AIJZ_SKIP_GIT_PULL)"
|
||||
fi
|
||||
|
||||
ensure_docker
|
||||
ensure_env_file
|
||||
export_defaults
|
||||
stack_up "$REBUILD"
|
||||
healthcheck
|
||||
print_endpoints
|
||||
Reference in New Issue
Block a user