feat: simplify public preview installation
Release / release (push) Failing after 12s

This commit is contained in:
Qiufeng
2026-08-17 15:27:32 +08:00
parent c8b0151769
commit aed561c702
7 changed files with 90 additions and 182 deletions
+4 -67
View File
@@ -12,9 +12,9 @@ RELEASE_API_URL=${KAIDI_RELEASE_API_URL:-https://git.awaioi.com/api/v1/repos/ERP
RELEASE_TOKEN=${KAIDI_RELEASE_TOKEN:-}
RELEASE_TOKEN_FILE=${KAIDI_RELEASE_TOKEN_FILE:-}
HEALTH_URL=${KAIDI_HEALTH_URL:-http://127.0.0.1:18080/actuator/health}
TRUSTED_PUBLIC_KEY_SHA256=${KAIDI_RELEASE_PUBLIC_KEY_SHA256:-}
TRUSTED_PUBLIC_KEY_SHA256=${KAIDI_RELEASE_PUBLIC_KEY_SHA256:-807c6aec1dc3f7ce494db16aa9d763c66f292033c38f328afd0390d2715a8cd9}
REINSTALL=${KAIDI_REINSTALL:-false}
SETUP_WIZARD=${KAIDI_SETUP_WIZARD:-false}
SETUP_WIZARD=${KAIDI_SETUP_WIZARD:-true}
WORK_DIR=
RELEASE_AUTH_HEADER_FILE=
INSTALL_TRANSACTION_ARMED=false
@@ -24,8 +24,6 @@ BACKUP_DIR=
JAVA_STAGED_DIR=
JAVA_PREVIOUS_DIR=
JAVA_ACTIVATED=false
CREATED_DB_CONTAINER=false
CREATED_DB_VOLUME=false
log() { printf '[kaidi-install] %s\n' "$*"; }
die() { printf '[kaidi-install] ERROR: %s\n' "$*" >&2; exit 1; }
@@ -160,18 +158,6 @@ install_packages() {
fi
}
install_docker() {
command -v docker >/dev/null 2>&1 && return
if command -v apt-get >/dev/null 2>&1; then
apt-get install -y -qq docker.io
elif command -v dnf >/dev/null 2>&1; then
dnf install -y docker
else
yum install -y docker
fi
systemctl enable --now docker
}
azul_arch() {
case "$(uname -m)" in
x86_64|amd64) printf x86 ;;
@@ -312,48 +298,7 @@ configure_database() {
fi
[ "$REINSTALL" != true ] \
|| die "KAIDI_REINSTALL needs database credentials in the existing installation or command environment"
case "$(uname -m)" in
i386|i486|i586|i686)
die "32-bit Linux needs an external MySQL 8.4 database; set KAIDI_DB_URL, KAIDI_DB_USERNAME, and KAIDI_DB_PASSWORD"
;;
esac
install_docker
DB_USERNAME=kaidi
DB_PASSWORD=$(random_secret)
DB_ROOT_PASSWORD=$(random_secret)
! docker inspect kaidi-finance-mysql >/dev/null 2>&1 \
|| die "Docker container kaidi-finance-mysql already exists; provide explicit database parameters"
! docker volume inspect kaidi_mysql_data >/dev/null 2>&1 \
|| die "Docker volume kaidi_mysql_data already exists; provide explicit database parameters"
docker volume create kaidi_mysql_data >/dev/null
CREATED_DB_VOLUME=true
docker run -d \
--name kaidi-finance-mysql \
--restart unless-stopped \
-e MYSQL_DATABASE=kaidi_finance \
-e MYSQL_USER="$DB_USERNAME" \
-e MYSQL_PASSWORD="$DB_PASSWORD" \
-e MYSQL_ROOT_PASSWORD="$DB_ROOT_PASSWORD" \
-e TZ=Asia/Shanghai \
-p 127.0.0.1:3307:3306 \
-v kaidi_mysql_data:/var/lib/mysql \
--health-cmd='mysqladmin ping -h localhost -uroot -p$MYSQL_ROOT_PASSWORD --silent' \
--health-interval=5s --health-timeout=5s --health-retries=30 \
mysql:8.4 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_0900_ai_ci \
--default-time-zone=+00:00 >/dev/null
CREATED_DB_CONTAINER=true
local attempts=0 health
while [ "$attempts" -lt 60 ]; do
health=$(docker inspect --format '{{.State.Health.Status}}' kaidi-finance-mysql 2>/dev/null || true)
[ "$health" = healthy ] && break
[ "$health" = unhealthy ] && die "MySQL container failed its health check"
attempts=$((attempts + 1))
sleep 2
done
[ "$health" = healthy ] || die "MySQL did not become ready"
DB_URL='jdbc:mysql://127.0.0.1:3307/kaidi_finance?useUnicode=true&characterEncoding=utf8&connectionTimeZone=UTC&serverTimezone=UTC'
die "An external MySQL 8.4 database is required; set KAIDI_DB_URL, KAIDI_DB_USERNAME, and KAIDI_DB_PASSWORD"
}
database_host() {
@@ -599,14 +544,6 @@ cleanup() {
&& [ "$INSTALL_COMMITTED" != true ]; then
rollback_install || log "ERROR: rollback was incomplete; inspect systemd and Nginx state"
fi
if [ "$result" -ne 0 ] && [ "$INSTALL_COMMITTED" != true ] \
&& [ "$CREATED_DB_CONTAINER" = true ]; then
docker rm -f kaidi-finance-mysql >/dev/null 2>&1 || true
fi
if [ "$result" -ne 0 ] && [ "$INSTALL_COMMITTED" != true ] \
&& [ "$CREATED_DB_VOLUME" = true ]; then
docker volume rm kaidi_mysql_data >/dev/null 2>&1 || true
fi
[ -z "$WORK_DIR" ] || rm -rf "$WORK_DIR"
exit "$result"
}
@@ -755,7 +692,7 @@ write_env_file "$CONFIG_ROOT/update.env" \
KAIDI_UPDATE_STATE_ROOT "$UPDATE_STATE_ROOT" \
KAIDI_SERVICE_NAME kaidi-finance.service \
KAIDI_HEALTH_URL "$HEALTH_URL" \
KAIDI_DB_CONTAINER "${KAIDI_DB_CONTAINER:-kaidi-finance-mysql}" \
KAIDI_DB_CONTAINER "${KAIDI_DB_CONTAINER:-}" \
KAIDI_DB_HOST "$(database_host)" \
KAIDI_DB_PORT "$(database_port)" \
KAIDI_DB_NAME "$(database_name)" \