Files
opsxdb/tests/docker-compose.yml
logan f8740d27f7 feat: OpsxDB 桌面数据库客户端首版入库
含工作台/连库多引擎字段与 SSH·SSL、结果编辑、Redis 键浏览、
Tauri 桌面与 docs/落地页;排除本地构建产物与 sidecar 二进制。
2026-09-19 22:43:45 +08:00

190 lines
5.2 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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: