🐳 修改 docker 配置.

This commit is contained in:
lijiahangmax
2025-09-10 01:43:11 +08:00
parent df78fc5977
commit d2703661c8
15 changed files with 86 additions and 11 deletions

View File

@@ -34,3 +34,5 @@ INFLUXDB_PORT=8086
INFLUXDB_ORG=orion-visor INFLUXDB_ORG=orion-visor
INFLUXDB_BUCKET=metrics INFLUXDB_BUCKET=metrics
INFLUXDB_TOKEN=Data@123456 INFLUXDB_TOKEN=Data@123456
INFLUXDB_ADMIN_USERNAME=admin
INFLUXDB_ADMIN_PASSWORD=Data@123456

View File

@@ -41,6 +41,10 @@ jobs:
pnpm install pnpm install
pnpm build 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 - name: 📁 Prepare build context
run: | run: |
cp -r ./sql ./docker/mysql/sql cp -r ./sql ./docker/mysql/sql
@@ -62,7 +66,7 @@ jobs:
strategy: strategy:
matrix: matrix:
service: [ adminer, guacd, mysql, redis, service, ui ] service: [ adminer, guacd, mysql, redis, influxdb, service, ui ]
env: env:
GITHUB_REGISTRY: ghcr.io GITHUB_REGISTRY: ghcr.io

View File

@@ -18,4 +18,4 @@ jobs:
run: | 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 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 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

View File

@@ -35,10 +35,18 @@ services:
REDIS_PASSWORD: ${REDIS_PASSWORD:-Data@123456} REDIS_PASSWORD: ${REDIS_PASSWORD:-Data@123456}
REDIS_DATABASE: ${REDIS_DATABASE:-0} REDIS_DATABASE: ${REDIS_DATABASE:-0}
REDIS_DATA_VERSION: ${REDIS_DATA_VERSION:-1} 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_HOST: ${GUACD_HOST:-guacd}
GUACD_PORT: ${GUACD_PORT:-4822} GUACD_PORT: ${GUACD_PORT:-4822}
GUACD_DRIVE_PATH: ${GUACD_DRIVE_PATH:-/drive} 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} DEMO_MODE: ${DEMO_MODE:-false}
volumes: volumes:
- ${VOLUME_BASE:-/data/orion-visor-space/docker-volumes}/service/root-orion:/root/orion - ${VOLUME_BASE:-/data/orion-visor-space/docker-volumes}/service/root-orion:/root/orion
@@ -54,6 +62,8 @@ services:
condition: service_healthy condition: service_healthy
redis: redis:
condition: service_healthy condition: service_healthy
influxdb:
condition: service_healthy
networks: networks:
- orion-visor-net - orion-visor-net
@@ -100,6 +110,31 @@ services:
networks: networks:
- orion-visor-net - 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: guacd:
image: registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-guacd:latest image: registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-guacd:latest
ports: ports:

View File

@@ -46,6 +46,7 @@ declare -A images=(
["./service/Dockerfile"]="orion-visor-service" ["./service/Dockerfile"]="orion-visor-service"
["./mysql/Dockerfile"]="orion-visor-mysql" ["./mysql/Dockerfile"]="orion-visor-mysql"
["./redis/Dockerfile"]="orion-visor-redis" ["./redis/Dockerfile"]="orion-visor-redis"
["./influxdb/Dockerfile"]="orion-visor-influxdb"
["./adminer/Dockerfile"]="orion-visor-adminer" ["./adminer/Dockerfile"]="orion-visor-adminer"
["./guacd/Dockerfile"]="orion-visor-guacd" ["./guacd/Dockerfile"]="orion-visor-guacd"
) )
@@ -68,6 +69,30 @@ function prepare_app_jar() {
fi 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 目录 # 准备前端 dist 目录
function prepare_dist_directory() { function prepare_dist_directory() {
local source_dir="../orion-visor-ui/dist" local source_dir="../orion-visor-ui/dist"
@@ -185,6 +210,7 @@ fi
# 检查资源 # 检查资源
echo "正在检查并准备必要的构建资源..." echo "正在检查并准备必要的构建资源..."
prepare_app_jar prepare_app_jar
prepare_instance_agent
prepare_dist_directory prepare_dist_directory
prepare_sql_directory prepare_sql_directory
echo "所有前置资源已准备完毕" echo "所有前置资源已准备完毕"

View File

@@ -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

View File

@@ -24,7 +24,7 @@ RUN chmod +x /app/entrypoint.sh
# 复制 jar 包 # 复制 jar 包
COPY ./service/orion-visor-launch.jar /app/app.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 \ HEALTHCHECK --interval=15s --timeout=5s --retries=5 --start-period=10s \

View File

@@ -1,6 +1,6 @@
#!/bin/sh #!/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" DEFAULT_AGENT_DIR="/app/instant-agent-release"
# 确保父目录存在 # 确保父目录存在

View File

@@ -29,8 +29,8 @@ import java.lang.annotation.*;
/** /**
* 不执行统一日志打印 * 不执行统一日志打印
* <p> * <p>
* 如果设置在方法上则忽略该方法的日志打印 * 如果设置在方法上, 则忽略该方法的日志打印
* 如果设置到参数上则忽略该参数的日志打印 * 如果设置到参数上, 则忽略该参数的日志打印
* *
* @author Jiahang Li * @author Jiahang Li
* @version 1.0.0 * @version 1.0.0

View File

@@ -48,8 +48,8 @@ public class ReplaceVersion {
private static final String[] DOCKER_FILES = new String[]{ private static final String[] DOCKER_FILES = new String[]{
"docker/docker-build.sh", "docker/docker-build.sh",
"docker/project-build.sh", "docker/project-build.sh",
"docker-compose.yml", "docker-compose.yaml",
"docker-compose-testing.yml" "docker-compose-testing.yaml"
}; };
private static final String[] POM_FILES = new String[]{ private static final String[] POM_FILES = new String[]{

View File

@@ -35,7 +35,7 @@
checked-text="开启" checked-text="开启"
unchecked-text="关闭" /> unchecked-text="关闭" />
<template #extra> <template #extra>
开启后当凭证即将过期时系统会自动续签 开启后当凭证即将过期时, 系统会自动续签
</template> </template>
</a-form-item> </a-form-item>
<!-- 登录失败锁定 --> <!-- 登录失败锁定 -->
@@ -105,7 +105,7 @@
</template> </template>
</a-input-number> </a-input-number>
<template #extra> <template #extra>
当登录凭证过期但未超过续签间隔时系统会自动续签 当登录凭证过期但未超过续签间隔时, 系统会自动续签
</template> </template>
</a-form-item> </a-form-item>
<!-- 凭证续签最大次数 --> <!-- 凭证续签最大次数 -->