fix(deploy): 增加部署更新实时进度
This commit is contained in:
@@ -155,6 +155,8 @@ bash scripts/install.sh release --base-url https://ctms.example.com
|
||||
7. 检查容器状态、后端环境、/health、/api/v1/auth/login-key。
|
||||
```
|
||||
|
||||
更新进入“执行部署更新”后会持续显示 Docker 镜像拉取与构建进度:交互终端使用滚动实时输出窗口,CI、远程面板或管道环境直接流式输出构建日志,并在两种模式下显示累计耗时。
|
||||
|
||||
脚本不会执行:
|
||||
|
||||
```text
|
||||
|
||||
+22
-9
@@ -345,7 +345,7 @@ ctms_run_quiet() {
|
||||
mkdir -p "$CTMS_LOG_DIR"
|
||||
local log_file
|
||||
log_file="$(mktemp "$CTMS_LOG_DIR/cmd_XXXXXXXX")"
|
||||
local start_ts elapsed exit_code
|
||||
local start_ts elapsed exit_code streamed_output=0
|
||||
start_ts="$(date +%s)"
|
||||
|
||||
set +e
|
||||
@@ -368,9 +368,16 @@ ctms_run_quiet() {
|
||||
printf '\r\033[K'
|
||||
fi
|
||||
else
|
||||
printf ' %s%s%s %s …\n' "${CC_MUTED}" "$ICON_INFO" "${C_RESET}" "$label"
|
||||
"$@" >"$log_file" 2>&1
|
||||
exit_code=$?
|
||||
if [[ "${CTMS_LIVE_OUTPUT:-0}" -eq 1 ]]; then
|
||||
printf ' %s%s%s %s(实时输出)\n' "${CC_INFO}${C_BOLD}" "$ICON_INFO" "${C_RESET}" "$label"
|
||||
"$@" 2>&1 | tee "$log_file"
|
||||
exit_code="${PIPESTATUS[0]}"
|
||||
streamed_output=1
|
||||
else
|
||||
printf ' %s%s%s %s …\n' "${CC_MUTED}" "$ICON_INFO" "${C_RESET}" "$label"
|
||||
"$@" >"$log_file" 2>&1
|
||||
exit_code=$?
|
||||
fi
|
||||
fi
|
||||
set -e
|
||||
|
||||
@@ -381,11 +388,17 @@ ctms_run_quiet() {
|
||||
return 0
|
||||
fi
|
||||
|
||||
printf '\n %s%s%s %s%s 失败(耗时 %ss),完整输出:%s\n\n' \
|
||||
"${CC_DANGER}${C_BOLD}" "$ICON_FAIL" "${C_RESET}" "${CC_DANGER}" "$label" "$elapsed" "${C_RESET}" >&2
|
||||
sed 's/^/ /' "$log_file" >&2
|
||||
printf '\n' >&2
|
||||
ctms_fail "命令执行失败,详细日志保留于:${log_file#"$CTMS_ROOT_DIR"/}(追加 --verbose 可看实时输出)"
|
||||
if [[ "$streamed_output" -eq 1 ]]; then
|
||||
printf '\n %s%s%s %s%s 失败(耗时 %ss),输出已在上方实时展示。%s\n\n' \
|
||||
"${CC_DANGER}${C_BOLD}" "$ICON_FAIL" "${C_RESET}" "${CC_DANGER}" "$label" "$elapsed" "${C_RESET}" >&2
|
||||
ctms_fail "命令执行失败,详细日志保留于:${log_file#"$CTMS_ROOT_DIR"/}"
|
||||
else
|
||||
printf '\n %s%s%s %s%s 失败(耗时 %ss),完整输出:%s\n\n' \
|
||||
"${CC_DANGER}${C_BOLD}" "$ICON_FAIL" "${C_RESET}" "${CC_DANGER}" "$label" "$elapsed" "${C_RESET}" >&2
|
||||
sed 's/^/ /' "$log_file" >&2
|
||||
printf '\n' >&2
|
||||
ctms_fail "命令执行失败,详细日志保留于:${log_file#"$CTMS_ROOT_DIR"/}(追加 --verbose 可看实时输出)"
|
||||
fi
|
||||
}
|
||||
|
||||
# 固定占用 9 行:上边框 + 6 行日志 + 下边框 + 状态行。
|
||||
|
||||
+3
-2
@@ -554,8 +554,9 @@ run_install_script() {
|
||||
local install_script="$CTMS_ROOT_DIR/scripts/install.sh"
|
||||
[[ -x "$install_script" ]] || ctms_fail "安装脚本不可执行: $install_script"
|
||||
|
||||
ctms_info "调用安装脚本完成容器更新..."
|
||||
"$install_script" "$TARGET_ENV" "${INSTALL_ARGS[@]}"
|
||||
ctms_info "调用安装脚本完成容器更新,镜像拉取与构建进度将在下方实时显示..."
|
||||
COMPOSE_PROGRESS=plain BUILDKIT_PROGRESS=plain \
|
||||
"$install_script" "$TARGET_ENV" "${INSTALL_ARGS[@]}"
|
||||
}
|
||||
|
||||
# ── 完成提示 ─────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user