feat: OpsxDB 桌面数据库客户端首版入库
含工作台/连库多引擎字段与 SSH·SSL、结果编辑、Redis 键浏览、 Tauri 桌面与 docs/落地页;排除本地构建产物与 sidecar 二进制。
This commit is contained in:
commit
f8740d27f7
240 files changed
+21625
No files matched your search
@@ -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:
|
||||
Reference in new issue
Block a user