name: ruoyi-vue-pro volumes: mysql: { } postgres: { } sqlserver: { } dm8: { } kingbase: { } opengauss: { } highgo: { } oceanbase: { } oceanbase_config: { } tidb_pd: { } tidb_tikv: { } mogdb: { } services: mysql: image: mysql:8.0.33 restart: unless-stopped environment: TZ: Asia/Shanghai MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: ruoyi-vue-pro ports: - "3306:3306" volumes: - mysql:/var/lib/mysql/ # 注入初始化脚本 - ./mysql/ruoyi-vue-pro.sql:/docker-entrypoint-initdb.d/init.sql:ro command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --explicit_defaults_for_timestamp=true --lower_case_table_names=1 postgres: image: postgres:14.2 restart: unless-stopped environment: POSTGRES_USER: root POSTGRES_PASSWORD: 123456 POSTGRES_DB: ruoyi-vue-pro ports: - "5432:5432" volumes: - postgres:/var/lib/postgresql/data # 注入初始化脚本 - ../postgresql/quartz.sql:/docker-entrypoint-initdb.d/quartz.sql:ro - ../postgresql/ruoyi-vue-pro.sql:/docker-entrypoint-initdb.d/ruoyi-vue-pro.sql:ro oracle: image: gvenzl/oracle-xe:18-slim-faststart restart: unless-stopped environment: ## 登录信息 SID: XE user: system password: oracle ORACLE_PASSWORD: oracle ports: - "1521:1521" volumes: - ../oracle/ruoyi-vue-pro.sql:/tmp/schema.sql:ro # 创建app用户: ROOT/123456@//localhost/XEPDB1 - ./oracle/1_create_user.sql:/docker-entrypoint-initdb.d/1_create_user.sql:ro - ./oracle/2_create_schema.sh:/docker-entrypoint-initdb.d/2_create_schema.sh:ro oracle_m1: image: einslib/oracle-19c:19.3.0-ee-slim-faststart restart: unless-stopped environment: ## 登录信息 SID: FREE user: system password: oracle ORACLE_PASSWORD: oracle ports: - "1521:1521" volumes: - ../oracle/ruoyi-vue-pro.sql:/tmp/schema.sql:ro # 创建app用户: ROOT/123456@//localhost/XEPDB1 - ./oracle/1_create_user.sql:/docker-entrypoint-initdb.d/1_create_user.sql:ro - ./oracle/2_create_schema.sh:/docker-entrypoint-initdb.d/2_create_schema.sh:ro sqlserver: image: mcr.microsoft.com/mssql/server:2017-latest restart: unless-stopped environment: TZ: Asia/Shanghai ACCEPT_EULA: "Y" SA_PASSWORD: "Yudao@2024" ports: - "1433:1433" volumes: - sqlserver:/var/opt/mssql - ../sqlserver/ruoyi-vue-pro.sql:/tmp/schema.sql:ro # docker compose exec sqlserver bash /tmp/create_schema.sh - ./sqlserver/create_schema.sh:/tmp/create_schema.sh:ro dm8: # docker load -i dm8_20240715_x86_rh6_rq_single.tar image: dm8_single:dm8_20240715_rev232765_x86_rh6_64 restart: unless-stopped environment: PAGE_SIZE: 16 LD_LIBRARY_PATH: /opt/dmdbms/bin EXTENT_SIZE: 32 BLANK_PAD_MODE: 1 LOG_SIZE: 1024 UNICODE_FLAG: 1 LENGTH_IN_CHAR: 1 INSTANCE_NAME: dm8_test ports: - "5236:5236" volumes: - dm8:/opt/dmdbms/data - ../dm/ruoyi-vue-pro-dm8.sql:/tmp/schema.sql:ro kingbase: image: kingbase_v009r001c001b0025_single_x86:v1 # image: kingbase_v009r001c001b0025_single_arm:v1 restart: unless-stopped environment: DB_USER: root DB_PASSWORD: 123456 ports: - "54321:54321" volumes: - kingbase:/home/kingbase/userdata - ../kingbase/ruoyi-vue-pro.sql:/tmp/schema.sql:ro opengauss: image: opengauss/opengauss:5.0.0 restart: unless-stopped environment: GS_USERNAME: root GS_PASSWORD: Yudao@2024 LD_LIBRARY_PATH: /usr/local/opengauss/lib:/usr/lib ports: - "5432:5432" volumes: - opengauss:/var/lib/opengauss - ../opengauss/ruoyi-vue-pro.sql:/tmp/schema.sql:ro # docker compose exec opengauss bash -c '/usr/local/opengauss/bin/gsql -U $GS_USERNAME -W $GS_PASSWORD -d postgres -f /tmp/schema.sql' highgo: # 使用瀚高官方提供的 Docker 镜像,加载后打成本地标签: # docker tag : highgo:local image: highgo:local profiles: ["highgo"] restart: unless-stopped ports: - "5866:5866" volumes: - highgo:/home/highgo/hgdb/data - ../highgo/quartz.sql:/tmp/quartz.sql:ro - ../highgo/ruoyi-vue-pro.sql:/tmp/schema.sql:ro # 瀚高初始化:使用 PostgreSQL 客户端创建 ruoyi-vue-pro 数据库并导入 sql/highgo 脚本,只允许创建全新数据库 # 只支持 PostgreSQL 客户端可用的认证方式(例如 md5、scram-sha-256),SM3 等专有认证请使用瀚高客户端手动导入 # 执行:HIGHGO_PASSWORD='数据库密码' docker compose run --rm highgo-init highgo-init: image: postgres:14.2 profiles: ["highgo-init"] restart: "no" environment: HIGHGO_HOST: ${HIGHGO_HOST:-highgo} HIGHGO_PORT: ${HIGHGO_PORT:-5866} HIGHGO_USER: ${HIGHGO_USER:-highgo} HIGHGO_PASSWORD: ${HIGHGO_PASSWORD:-} HIGHGO_MAINTENANCE_DB: ${HIGHGO_MAINTENANCE_DB:-highgo} HIGHGO_DATABASE: ruoyi-vue-pro entrypoint: ["bash", "/tmp/create_schema.sh"] volumes: - ../highgo/quartz.sql:/tmp/quartz.sql:ro - ../highgo/ruoyi-vue-pro.sql:/tmp/schema.sql:ro - ./highgo/create_schema.sh:/tmp/create_schema.sh:ro oceanbase: image: oceanbase/oceanbase-ce:4.4.2-lts restart: unless-stopped environment: MODE: mini OB_MEMORY_LIMIT: 6G OB_TENANT_MEMORY_SIZE: 3G OB_TENANT_MIN_CPU: 2 OB_TENANT_LOG_DISK_SIZE: 2G OB_TENANT_NAME: test OB_TENANT_PASSWORD: "123456" ports: - "2881:2881" volumes: - oceanbase:/root/ob - oceanbase_config:/root/.obd/cluster - ../oceanbase/ruoyi-vue-pro.sql:/tmp/schema.sql:ro - ../oceanbase/quartz.sql:/tmp/quartz.sql:ro - ./oceanbase/create_schema.sh:/tmp/create_schema.sh:ro healthcheck: test: ["CMD-SHELL", "MYSQL_PWD=$$OB_TENANT_PASSWORD obclient -h127.0.0.1 -P2881 -uroot@$$OB_TENANT_NAME -e 'SELECT 1' >/dev/null 2>&1"] interval: 10s timeout: 5s start_period: 120s retries: 30 # TiDB 测试集群:PD、TiKV、TiDB 各 1 个节点,属于 tidb profile,默认不启动 # 启动:docker compose up -d --wait --wait-timeout 300 tidb tidb-pd: image: pingcap/pd:v8.5.8 profiles: ["tidb"] restart: unless-stopped command: - --name=pd - --client-urls=http://0.0.0.0:2379 - --peer-urls=http://0.0.0.0:2380 - --advertise-client-urls=http://tidb-pd:2379 - --advertise-peer-urls=http://tidb-pd:2380 - --initial-cluster=pd=http://tidb-pd:2380 - --data-dir=/data/pd - --config=/pd.toml volumes: - tidb_pd:/data - ./tidb/pd.toml:/pd.toml:ro tidb-tikv: image: pingcap/tikv:v8.5.8 profiles: ["tidb"] restart: unless-stopped command: - --addr=0.0.0.0:20160 - --advertise-addr=tidb-tikv:20160 - --status-addr=0.0.0.0:20180 - --advertise-status-addr=tidb-tikv:20180 - --data-dir=/data/tikv - --pd=tidb-pd:2379 - --config=/tikv.toml volumes: - tidb_tikv:/data - ./tidb/tikv.toml:/tikv.toml:ro depends_on: - tidb-pd tidb: image: pingcap/tidb:v8.5.8 profiles: ["tidb"] restart: unless-stopped environment: TZ: Asia/Shanghai command: - --store=tikv - --path=tidb-pd:2379 - --advertise-address=tidb ports: # 只绑定本机,root 密码由 tidb-init 初始化 - "127.0.0.1:4000:4000" depends_on: - tidb-tikv healthcheck: test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:10080/status >/dev/null"] interval: 10s timeout: 5s start_period: 60s retries: 30 # TiDB 初始化:设置 root 密码,创建 ruoyi-vue-pro 数据库并导入 MySQL 脚本,只允许创建全新数据库 # 执行:docker compose run --rm tidb-init tidb-init: image: mysql:8.0.33 profiles: ["tidb-init"] restart: "no" environment: TIDB_HOST: tidb TIDB_PORT: 4000 TIDB_DATABASE: ruoyi-vue-pro TIDB_PASSWORD: "123456" entrypoint: ["bash", "/tmp/create_schema.sh"] volumes: - ../mysql/ruoyi-vue-pro.sql:/tmp/schema.sql:ro - ../mysql/quartz.sql:/tmp/quartz.sql:ro - ./tidb/create_schema.sh:/tmp/create_schema.sh:ro # MogDB 测试库:云和恩墨官方容器镜像(仅用于测试),属于 mogdb profile,默认不启动 # 启动:docker compose up -d mogdb # 初始化:docker compose exec -u omm mogdb bash /tmp/create_schema.sh(创建 PG 兼容模式的 ruoyi-vue-pro 数据库,并导入 sql/opengauss 脚本) mogdb: image: swr.cn-north-4.myhuaweicloud.com/mogdb/mogdb:5.0.0 profiles: ["mogdb"] restart: unless-stopped shm_size: 1g environment: # omm 超级用户、mogdb 用户的密码:至少 8 位,包含大小写字母、数字及特殊字符 GS_PASSWORD: Yudao@2024 ports: # 只绑定本机,应用使用 mogdb 用户连接(omm 初始用户不允许远程连接) - "127.0.0.1:15432:5432" volumes: - mogdb:/var/lib/mogdb - ../opengauss/quartz.sql:/tmp/quartz.sql:ro - ../opengauss/ruoyi-vue-pro.sql:/tmp/schema.sql:ro - ./mogdb/create_schema.sh:/tmp/create_schema.sh:ro