feat: OpsxDB 桌面数据库客户端首版入库

含工作台/连库多引擎字段与 SSH·SSL、结果编辑、Redis 键浏览、
Tauri 桌面与 docs/落地页;排除本地构建产物与 sidecar 二进制。
This commit is contained in:
logan committed 2026-09-19 22:43:45 +08:00
commit f8740d27f7
240 files changed
+21625

No files matched your search

+189
View File
@@ -0,0 +1,189 @@
# OpsxDB 测试库 —— 务必按需启动,不要一次全开(吃内存/影响压测)
# 用法见 README.md / ./dbctl.sh
name: opsxdb-tests
services:
# a) MySQL 8
mysql:
profiles: ["mysql", "a"]
image: mysql:8.4
container_name: opsxdb-mysql
ports: ["3306:3306"]
environment:
MYSQL_ROOT_PASSWORD: Demo@123
MYSQL_DATABASE: demo
MYSQL_USER: opsx
MYSQL_PASSWORD: Demo@123
volumes:
- ./init/mysql:/docker-entrypoint-initdb.d:ro
- opsxdb_mysql_data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-uroot", "-pDemo@123"]
interval: 5s
timeout: 5s
retries: 20
# b) MariaDB 11(宿主机 3307,避免与 MySQL 抢 3306)
mariadb:
profiles: ["mariadb", "b"]
image: mariadb:11
container_name: opsxdb-mariadb
ports: ["3307:3306"]
environment:
MARIADB_ROOT_PASSWORD: Demo@123
MARIADB_DATABASE: demo
MARIADB_USER: opsx
MARIADB_PASSWORD: Demo@123
volumes:
- ./init/mysql:/docker-entrypoint-initdb.d:ro
- opsxdb_mariadb_data:/var/lib/mysql
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 5s
timeout: 5s
retries: 20
# c) PostgreSQL 16
postgres:
profiles: ["postgres", "c"]
image: postgres:16
container_name: opsxdb-postgres
ports: ["5432:5432"]
environment:
POSTGRES_PASSWORD: Demo@123
POSTGRES_USER: opsx
POSTGRES_DB: demo
volumes:
- ./init/postgres:/docker-entrypoint-initdb.d:ro
- opsxdb_pg_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U opsx -d demo"]
interval: 5s
timeout: 5s
retries: 20
# d) SQL Server 2022(密码需满足复杂度)
mssql:
profiles: ["mssql", "sqlserver", "d"]
image: mssql/server:2022-latest
container_name: opsxdb-mssql
ports: ["1433:1433"]
environment:
ACCEPT_EULA: "Y"
MSSQL_SA_PASSWORD: "Demo@12345"
volumes:
- opsxdb_mssql_data:/var/opt/mssql
healthcheck:
test: ["CMD-SHELL", "/opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P 'Demo@12345' -C -Q 'SELECT 1' || exit 1"]
interval: 10s
timeout: 10s
retries: 30
start_period: 30s
# e) Oracle XE(镜像大,首次拉取慢;默认别开)
oracle:
profiles: ["oracle", "e"]
image: gvenzl/oracle-xe:21-slim
container_name: opsxdb-oracle
ports: ["1521:1521"]
environment:
ORACLE_PASSWORD: Demo@123
APP_USER: opsx
APP_USER_PASSWORD: Demo@123
volumes:
- opsxdb_oracle_data:/opt/oracle/oradata
healthcheck:
test: ["CMD", "healthcheck.sh"]
interval: 15s
timeout: 10s
retries: 40
start_period: 60s
# f) Redis 7
redis:
profiles: ["redis", "f"]
image: redis:7-alpine
container_name: opsxdb-redis
ports: ["6379:6379"]
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 20
# g) ZooKeeper 3.9(无账号;四字命令放开便于探活)
zookeeper:
profiles: ["zookeeper", "zk", "g"]
image: zookeeper:3.9
container_name: opsxdb-zookeeper
ports: ["2181:2181"]
environment:
ZOO_MY_ID: "1"
ZOO_4LW_COMMANDS_WHITELIST: srvr,ruok,stat,mntr,conf
ZOO_TICK_TIME: "2000"
volumes:
- opsxdb_zk_data:/data
- opsxdb_zk_datalog:/datalog
healthcheck:
test: ["CMD-SHELL", "zkServer.sh status || exit 1"]
interval: 5s
timeout: 5s
retries: 20
# h) Elasticsearch 8(关安全,本机联调用;吃内存,一次只开这一个)
elasticsearch:
profiles: ["elasticsearch", "es", "h"]
image: elasticsearch:8.15.3
container_name: opsxdb-elasticsearch
ports: ["9200:9200", "9300:9300"]
environment:
discovery.type: single-node
xpack.security.enabled: "false"
xpack.security.http.ssl.enabled: "false"
xpack.security.transport.ssl.enabled: "false"
cluster.name: opsxdb
ingest.geoip.downloader.enabled: "false"
ES_JAVA_OPTS: "-Xms512m -Xmx512m"
volumes:
- opsxdb_es_data:/usr/share/elasticsearch/data
healthcheck:
test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:9200 >/dev/null || exit 1"]
interval: 10s
timeout: 8s
retries: 30
start_period: 30s
# i) InfluxDB 2.7
influxdb:
profiles: ["influxdb", "influx", "i"]
image: influxdb:2.7
container_name: opsxdb-influxdb
ports: ["8086:8086"]
environment:
DOCKER_INFLUXDB_INIT_MODE: setup
DOCKER_INFLUXDB_INIT_USERNAME: opsx
DOCKER_INFLUXDB_INIT_PASSWORD: Demo@123
DOCKER_INFLUXDB_INIT_ORG: opsx
DOCKER_INFLUXDB_INIT_BUCKET: demo
DOCKER_INFLUXDB_INIT_ADMIN_TOKEN: opsxdb-demo-token
volumes:
- opsxdb_influx_data:/var/lib/influxdb2
healthcheck:
test: ["CMD-SHELL", "influx ping || curl -fsS http://127.0.0.1:8086/health >/dev/null || exit 1"]
interval: 8s
timeout: 5s
retries: 20
start_period: 15s
volumes:
opsxdb_mysql_data:
opsxdb_mariadb_data:
opsxdb_pg_data:
opsxdb_mssql_data:
opsxdb_oracle_data:
opsxdb_zk_data:
opsxdb_zk_datalog:
opsxdb_es_data:
opsxdb_influx_data: