From db4477a157b7a22a087d639a51e59f829b20a1cc Mon Sep 17 00:00:00 2001 From: wangruidong <940853815@qq.com> Date: Tue, 16 Jun 2026 17:44:16 +0800 Subject: [PATCH] perf: add ensure_core_data_symlink function and integrate into install/upgrade processes --- compose/celery.yml | 1 + scripts/4_install_jumpserver.sh | 2 ++ scripts/7_upgrade.sh | 1 + scripts/gists/conf.sh | 22 +++++++++++++++++++++- 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/compose/celery.yml b/compose/celery.yml index 99f3571..9f0295e 100644 --- a/compose/celery.yml +++ b/compose/celery.yml @@ -18,6 +18,7 @@ services: volumes: - ${CONFIG_DIR}/certs:/opt/jumpserver/data/certs - ${VOLUME_DIR}/core/data:/opt/jumpserver/data + - /var/run/docker.sock:/var/run/docker.sock:z healthcheck: test: "bash /opt/jumpserver/utils/check_celery.sh" interval: 10s diff --git a/scripts/4_install_jumpserver.sh b/scripts/4_install_jumpserver.sh index 6bca413..c8c18f7 100644 --- a/scripts/4_install_jumpserver.sh +++ b/scripts/4_install_jumpserver.sh @@ -110,6 +110,8 @@ function main() { log_error "$(gettext 'Failed to change the table structure')!" exit 1 fi + + ensure_core_data_symlink || log_warn "Failed to prepare host core data symlink, continue installation" installation_log "install" post_install diff --git a/scripts/7_upgrade.sh b/scripts/7_upgrade.sh index dbdf3ac..fe1a14d 100644 --- a/scripts/7_upgrade.sh +++ b/scripts/7_upgrade.sh @@ -343,6 +343,7 @@ function main() { echo_yellow "\n7. $(gettext 'Upgrade Docker')" upgrade_docker upgrade_compose + ensure_core_data_symlink || log_warn "Failed to prepare host core data symlink, continue upgrade" installation_log "upgrade" diff --git a/scripts/gists/conf.sh b/scripts/gists/conf.sh index c1fe5d0..6a3ee3b 100644 --- a/scripts/gists/conf.sh +++ b/scripts/gists/conf.sh @@ -229,4 +229,24 @@ function prepare_config() { fi gen_safe_config -} \ No newline at end of file +} + +function ensure_core_data_symlink() { + local target_dir link_path="/opt/jumpserver/data" + target_dir="$(get_config VOLUME_DIR)/core/data" + + mkdir -p "${target_dir}" "/opt/jumpserver" || return 1 + + if [[ -L "${link_path}" ]] && [[ "$(readlink -f "${link_path}")" == "$(readlink -f "${target_dir}")" ]]; then + echo_check "${link_path} -> ${target_dir}" + return 0 + fi + + if [[ -e "${link_path}" ]]; then + log_warn "${link_path} exists, skip creating symlink" + return 1 + fi + + ln -s "${target_dir}" "${link_path}" || return 1 + echo_check "${link_path} -> ${target_dir}" +}