fix(deploy): 兼容旧配置迁移并支持固定版本验收
This commit is contained in:
@@ -19,13 +19,18 @@ if [[ "${1:-}" =~ ^(-h|--help)$ ]]; then
|
||||
echo " 等待核心服务恢复可用的最长时间,默认 300 秒"
|
||||
echo " UPDATE_SERVICES='easyai-server easyai-web model-conversion-worker'"
|
||||
echo " 仅拉取并重建指定服务;不重建其依赖。留空保持整组更新。"
|
||||
echo " UPDATE_RELEASE_VERSION=固定版本"
|
||||
echo " 通过脚本固定核心服务和转换 Worker 的镜像版本,不提升 latest。"
|
||||
echo " UPDATE_ADOPT_LEGACY_CONFIG=1"
|
||||
echo " 备份旧部署配置并将本地差异迁移为独立覆盖文件。"
|
||||
echo ""
|
||||
echo "仓库更新后会自动执行 scripts/update-env.d 中的幂等环境配置迁移。"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# 进入脚本所在目录(项目根目录)
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd)"
|
||||
SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd)"
|
||||
SCRIPT_DIR="$(cd "${UPDATE_PROJECT_DIR:-$SOURCE_DIR}" && pwd)"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
# 命令行内选择更新方式(默认:更新并拉取仓库)
|
||||
@@ -92,6 +97,11 @@ resolve_update_mode() {
|
||||
|
||||
resolve_update_mode
|
||||
|
||||
if [ -n "${UPDATE_RELEASE_VERSION:-}" ] && ! [[ "$UPDATE_RELEASE_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]{8}(\.[0-9]+)?$ ]]; then
|
||||
echo "❌ UPDATE_RELEASE_VERSION 格式不正确;尚未修改配置或容器" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 拉取整个仓库更新
|
||||
if [ "$SKIP_REPO_UPDATE" = false ]; then
|
||||
echo ""
|
||||
@@ -107,6 +117,9 @@ if [ "$SKIP_REPO_UPDATE" = false ]; then
|
||||
fi
|
||||
|
||||
before_revision="$(git rev-parse HEAD)"
|
||||
if [ "${UPDATE_ADOPT_LEGACY_CONFIG:-0}" = "1" ]; then
|
||||
python3 "$SOURCE_DIR/scripts/prepare-update-repository.py" "$SCRIPT_DIR"
|
||||
fi
|
||||
echo "📥 正在执行 git pull --ff-only..."
|
||||
if git pull --ff-only; then
|
||||
echo "✅ 仓库已更新到最新版本"
|
||||
@@ -161,6 +174,12 @@ init_server_http_bind_ip .env
|
||||
. ./scripts/init-security-env.sh
|
||||
init_security_env .env upgrade
|
||||
|
||||
if [ -n "${UPDATE_RELEASE_VERSION:-}" ]; then
|
||||
write_env_value .env VERSION "$UPDATE_RELEASE_VERSION"
|
||||
write_env_value .env MODEL_CONVERSION_WORKER_VERSION "$UPDATE_RELEASE_VERSION"
|
||||
echo "📌 已固定本次发布版本: $UPDATE_RELEASE_VERSION"
|
||||
fi
|
||||
|
||||
# 在更新镜像和重建服务前迁移并校验后端公开 API 地址。
|
||||
# shellcheck source=scripts/init-public-api-base-url.sh
|
||||
. ./scripts/init-public-api-base-url.sh
|
||||
|
||||
Reference in New Issue
Block a user