From d2703661c8f28fc4a13e8cf98c6ab0f9b1d8473d Mon Sep 17 00:00:00 2001 From: lijiahangmax Date: Wed, 10 Sep 2025 01:43:11 +0800 Subject: [PATCH] =?UTF-8?q?:whale:=20=E4=BF=AE=E6=94=B9=20docker=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 2 + .../{bug_report.yml => bug_report.yaml} | 0 .../{config.yml => config.yaml} | 0 ...ature_request.yml => feature_request.yaml} | 0 ...docker-publish.yml => docker-publish.yaml} | 6 ++- .github/workflows/e2e.yaml | 2 +- ...testing.yml => docker-compose-testing.yaml | 0 docker-compose.yml => docker-compose.yaml | 37 ++++++++++++++++++- docker/docker-build.sh | 26 +++++++++++++ docker/influxdb/Dockerfile | 8 ++++ docker/service/Dockerfile | 2 +- docker/service/entrypoint.sh | 2 +- .../log/core/annotation/IgnoreLog.java | 4 +- .../dromara/visor/launch/ReplaceVersion.java | 4 +- .../setting/components/login-setting.vue | 4 +- 15 files changed, 86 insertions(+), 11 deletions(-) rename .github/ISSUE_TEMPLATE/{bug_report.yml => bug_report.yaml} (100%) rename .github/ISSUE_TEMPLATE/{config.yml => config.yaml} (100%) rename .github/ISSUE_TEMPLATE/{feature_request.yml => feature_request.yaml} (100%) rename .github/workflows/{docker-publish.yml => docker-publish.yaml} (93%) rename docker-compose-testing.yml => docker-compose-testing.yaml (100%) rename docker-compose.yml => docker-compose.yaml (74%) create mode 100644 docker/influxdb/Dockerfile diff --git a/.env.example b/.env.example index 8e4fa3bb..c6400a8c 100644 --- a/.env.example +++ b/.env.example @@ -34,3 +34,5 @@ INFLUXDB_PORT=8086 INFLUXDB_ORG=orion-visor INFLUXDB_BUCKET=metrics INFLUXDB_TOKEN=Data@123456 +INFLUXDB_ADMIN_USERNAME=admin +INFLUXDB_ADMIN_PASSWORD=Data@123456 diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yaml similarity index 100% rename from .github/ISSUE_TEMPLATE/bug_report.yml rename to .github/ISSUE_TEMPLATE/bug_report.yaml diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yaml similarity index 100% rename from .github/ISSUE_TEMPLATE/config.yml rename to .github/ISSUE_TEMPLATE/config.yaml diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yaml similarity index 100% rename from .github/ISSUE_TEMPLATE/feature_request.yml rename to .github/ISSUE_TEMPLATE/feature_request.yaml diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yaml similarity index 93% rename from .github/workflows/docker-publish.yml rename to .github/workflows/docker-publish.yaml index 16b4c128..93eb54d1 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yaml @@ -41,6 +41,10 @@ jobs: pnpm install pnpm build + - name: 📦️ Download instant-agent + working-directory: ./docker/service + run: wget https://github.com/lijiahangmax/orion-visor-agent/releases/latest/download/instance-agent-release.tar.gz -O instance-agent-release.tar.gz + - name: 📁 Prepare build context run: | cp -r ./sql ./docker/mysql/sql @@ -62,7 +66,7 @@ jobs: strategy: matrix: - service: [ adminer, guacd, mysql, redis, service, ui ] + service: [ adminer, guacd, mysql, redis, influxdb, service, ui ] env: GITHUB_REGISTRY: ghcr.io diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index 87eef70c..1be49f4c 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -18,4 +18,4 @@ jobs: run: | sudo curl -L https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose sudo chmod u+x /usr/local/bin/docker-compose - docker compose -f docker-compose-testing.yml up --build testing --exit-code-from testing --remove-orphans + docker compose -f docker-compose-testing.yaml up --build testing --exit-code-from testing --remove-orphans diff --git a/docker-compose-testing.yml b/docker-compose-testing.yaml similarity index 100% rename from docker-compose-testing.yml rename to docker-compose-testing.yaml diff --git a/docker-compose.yml b/docker-compose.yaml similarity index 74% rename from docker-compose.yml rename to docker-compose.yaml index 425cc70f..8810a491 100644 --- a/docker-compose.yml +++ b/docker-compose.yaml @@ -35,10 +35,18 @@ services: REDIS_PASSWORD: ${REDIS_PASSWORD:-Data@123456} REDIS_DATABASE: ${REDIS_DATABASE:-0} REDIS_DATA_VERSION: ${REDIS_DATA_VERSION:-1} + INFLUXDB_ENABLED: ${INFLUXDB_ENABLED:-true} + INFLUXDB_HOST: ${INFLUXDB_HOST:-influxdb} + INFLUXDB_PORT: ${INFLUXDB_PORT:-8086} + INFLUXDB_ORG: ${INFLUXDB_ORG:-orion-visor} + INFLUXDB_BUCKET: ${INFLUXDB_BUCKET:-metrics} + INFLUXDB_TOKEN: ${INFLUXDB_TOKEN:-Data@123456} GUACD_HOST: ${GUACD_HOST:-guacd} GUACD_PORT: ${GUACD_PORT:-4822} GUACD_DRIVE_PATH: ${GUACD_DRIVE_PATH:-/drive} - SECRET_KEY: ${SECRET_KEY:-uQeacXV8b3isvKLK} + SECRET_KEY: ${SECRET_KEY:-pmqeHOyZaumHm0Wt} + API_EXPOSE_TOKEN: ${API_EXPOSE_TOKEN:-uQeacXV8b3isvKLK} + API_CORS: ${API_CORS:-true} DEMO_MODE: ${DEMO_MODE:-false} volumes: - ${VOLUME_BASE:-/data/orion-visor-space/docker-volumes}/service/root-orion:/root/orion @@ -54,6 +62,8 @@ services: condition: service_healthy redis: condition: service_healthy + influxdb: + condition: service_healthy networks: - orion-visor-net @@ -100,6 +110,31 @@ services: networks: - orion-visor-net + influxdb: + image: registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-influxdb:latest + privileged: true + ports: + - "8086:8086" + environment: + DOCKER_INFLUXDB_INIT_MODE: setup + DOCKER_INFLUXDB_INIT_USERNAME: ${INFLUXDB_ADMIN_USERNAME:-admin} + DOCKER_INFLUXDB_INIT_PASSWORD: ${INFLUXDB_ADMIN_PASSWORD:-Data@123456} + DOCKER_INFLUXDB_INIT_ADMIN_TOKEN: ${INFLUXDB_TOKEN:-Data@123456} + DOCKER_INFLUXDB_INIT_ORG: ${INFLUXDB_ORG:-orion-visor} + DOCKER_INFLUXDB_INIT_BUCKET: ${INFLUXDB_BUCKET:-metrics} + volumes: + - ${VOLUME_BASE:-/data/orion-visor-space/docker-volumes}/influxdb/data:/var/lib/influxdb2 + - ${VOLUME_BASE:-/data/orion-visor-space/docker-volumes}/influxdb/config:/etc/influxdb2 + restart: unless-stopped + healthcheck: + test: [ "CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/8086" ] + interval: 15s + timeout: 5s + retries: 10 + start_period: 10s + networks: + - orion-visor-net + guacd: image: registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-guacd:latest ports: diff --git a/docker/docker-build.sh b/docker/docker-build.sh index 0b18e41d..d8b92646 100644 --- a/docker/docker-build.sh +++ b/docker/docker-build.sh @@ -46,6 +46,7 @@ declare -A images=( ["./service/Dockerfile"]="orion-visor-service" ["./mysql/Dockerfile"]="orion-visor-mysql" ["./redis/Dockerfile"]="orion-visor-redis" + ["./influxdb/Dockerfile"]="orion-visor-influxdb" ["./adminer/Dockerfile"]="orion-visor-adminer" ["./guacd/Dockerfile"]="orion-visor-guacd" ) @@ -68,6 +69,30 @@ function prepare_app_jar() { fi } +# 准备 instance-agent +function prepare_instance_agent() { + local target_file="./service/instance-agent-release.tar.gz" + if [ ! -f "$target_file" ]; then + echo "警告: $target_file 不存在, 正在尝试从 Github Release 下载..." + # 尝试从 GitHub Release 下载 + if curl -L --fail \ + --connect-timeout 30 --max-time 30 \ + https://github.com/lijiahangmax/orion-visor-agent/releases/latest/download/instance-agent-release.tar.gz \ + -o "$target_file"; then + echo "已成功下载到 $target_file" + fi + + # 如果下载失败, 提示用户手动下载 + echo "错误: 无法从 Release 获取 instance-agent-release.tar.gz" + echo "请手动从以下地址下载, 并放置到 $target_file" + echo " 1) https://github.com/lijiahangmax/orion-visor-agent/raw/main/instance-agent-release.tar.gz" + echo " 2) https://gitee.com/lijiahangmax/orion-visor-agent/raw/main/instance-agent-release.tar.gz" + exit 1 + else + echo "$target_file 已存在, 无需下载." + fi +} + # 准备前端 dist 目录 function prepare_dist_directory() { local source_dir="../orion-visor-ui/dist" @@ -185,6 +210,7 @@ fi # 检查资源 echo "正在检查并准备必要的构建资源..." prepare_app_jar +prepare_instance_agent prepare_dist_directory prepare_sql_directory echo "所有前置资源已准备完毕" diff --git a/docker/influxdb/Dockerfile b/docker/influxdb/Dockerfile new file mode 100644 index 00000000..2a47b7c5 --- /dev/null +++ b/docker/influxdb/Dockerfile @@ -0,0 +1,8 @@ +FROM --platform=$TARGETPLATFORM influxdb:2 + +# 系统时区 +ARG TZ=Asia/Shanghai + +# 设置时区 +RUN ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime && \ + echo "${TZ}" > /etc/timezone diff --git a/docker/service/Dockerfile b/docker/service/Dockerfile index 6d8a5a2a..15b3866a 100644 --- a/docker/service/Dockerfile +++ b/docker/service/Dockerfile @@ -24,7 +24,7 @@ RUN chmod +x /app/entrypoint.sh # 复制 jar 包 COPY ./service/orion-visor-launch.jar /app/app.jar # 复制探针包 -ADD ./service./instant-agent-release.tar.gz /app/instant-agent-release +ADD ./service/instant-agent-release.tar.gz /app/instant-agent-release # 启动检测 HEALTHCHECK --interval=15s --timeout=5s --retries=5 --start-period=10s \ diff --git a/docker/service/entrypoint.sh b/docker/service/entrypoint.sh index a19be15d..dac1d10f 100644 --- a/docker/service/entrypoint.sh +++ b/docker/service/entrypoint.sh @@ -1,6 +1,6 @@ #!/bin/sh -AGENT_RELEASE_DIR="/root/orion/visor/instant-agent-release" +AGENT_RELEASE_DIR="/root/orion/orion-visor/instant-agent-release" DEFAULT_AGENT_DIR="/app/instant-agent-release" # 确保父目录存在 diff --git a/orion-visor-framework/orion-visor-spring-boot-starter-log/src/main/java/org/dromara/visor/framework/log/core/annotation/IgnoreLog.java b/orion-visor-framework/orion-visor-spring-boot-starter-log/src/main/java/org/dromara/visor/framework/log/core/annotation/IgnoreLog.java index 7a9c335c..a72fcd92 100644 --- a/orion-visor-framework/orion-visor-spring-boot-starter-log/src/main/java/org/dromara/visor/framework/log/core/annotation/IgnoreLog.java +++ b/orion-visor-framework/orion-visor-spring-boot-starter-log/src/main/java/org/dromara/visor/framework/log/core/annotation/IgnoreLog.java @@ -29,8 +29,8 @@ import java.lang.annotation.*; /** * 不执行统一日志打印 *

- * 如果设置在方法上,则忽略该方法的日志打印 - * 如果设置到参数上,则忽略该参数的日志打印 + * 如果设置在方法上, 则忽略该方法的日志打印 + * 如果设置到参数上, 则忽略该参数的日志打印 * * @author Jiahang Li * @version 1.0.0 diff --git a/orion-visor-launch/src/test/java/org/dromara/visor/launch/ReplaceVersion.java b/orion-visor-launch/src/test/java/org/dromara/visor/launch/ReplaceVersion.java index 93d05ef7..f52c75e2 100644 --- a/orion-visor-launch/src/test/java/org/dromara/visor/launch/ReplaceVersion.java +++ b/orion-visor-launch/src/test/java/org/dromara/visor/launch/ReplaceVersion.java @@ -48,8 +48,8 @@ public class ReplaceVersion { private static final String[] DOCKER_FILES = new String[]{ "docker/docker-build.sh", "docker/project-build.sh", - "docker-compose.yml", - "docker-compose-testing.yml" + "docker-compose.yaml", + "docker-compose-testing.yaml" }; private static final String[] POM_FILES = new String[]{ diff --git a/orion-visor-ui/src/views/system/setting/components/login-setting.vue b/orion-visor-ui/src/views/system/setting/components/login-setting.vue index 19ef5ab8..ec8e164c 100644 --- a/orion-visor-ui/src/views/system/setting/components/login-setting.vue +++ b/orion-visor-ui/src/views/system/setting/components/login-setting.vue @@ -35,7 +35,7 @@ checked-text="开启" unchecked-text="关闭" /> @@ -105,7 +105,7 @@