docker-compose 部署配置(持续更新版)

services:
  # =====================
  # MongoDB 4.2
  # =====================
  mongodb:
    image: mongo:4.2
    container_name: mongodb
    restart: always
    mem_limit: 1073741824
    ports:
      - "27027:27017"
    volumes:
      - ./mongodb/data:/data/db
    networks:
      - services-network
    command: --wiredTigerCacheSizeGB 1

  # =====================
  # MySQL 8
  # =====================
  mysql8:
    image: mysql:8
    container_name: mysql8
    restart: always
    mem_limit: 1073741824
    ports:
      - "3316:3306"
    volumes:
      - ./mysql/data:/var/lib/mysql
      - ./mysql/conf:/etc/mysql/conf.d
    environment:
      MYSQL_ROOT_PASSWORD: "RootPass123!"
      MYSQL_DATABASE: appdb
    networks:
      - services-network
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

  # =====================
  # Oracle Database Express Edition 21c
  # =====================
  oracle-xe:
    image: gvenzl/oracle-xe:21.3.0
    container_name: oracle-xe
    restart: always
    mem_limit: 4294967296
    shm_size: 2gb
    ports:
      - "1521:1521"
      - "5500:5500"
    volumes:
      - ./oracle-xe/data:/opt/oracle/oradata
    environment:
      ORACLE_PASSWORD: "OracleXE123!"
      ORACLE_CHARACTERSET: "AL32UTF8"
    networks:
      - services-network

  # =====================
  # openGauss (高斯数据库社区版) 5.0.0
  # =====================
  opengauss:
    image: opengauss/opengauss:5.0.0
    container_name: opengauss
    restart: always
    privileged: true
    mem_limit: 2147483648
    ports:
      - "15432:5432"
    volumes:
      - ./opengauss/data:/var/lib/opengauss/data
    environment:
      GS_PASSWORD: "OpenGauss@123"
    networks:
      - services-network

  # =====================
  # RabbitMQ 3.12
  # =====================
  rabbitmq:
    image: rabbitmq:3.12-management
    container_name: rabbitmq
    restart: no
    mem_limit: 536870912
    ports:
      - "5672:5672"
      - "15672:15672"
    volumes:
      - ./rabbitmq/data:/var/lib/rabbitmq
    environment:
      RABBITMQ_DEFAULT_USER: admin
      RABBITMQ_DEFAULT_PASS: "Admin123!"
    networks:
      - services-network

  # =====================
  # Kafka (KRaft 模式, 无需 Zookeeper)
  # =====================
  kafka:
    image: confluentinc/cp-kafka:7.5.3
    container_name: kafka
    restart: no
    mem_limit: 1073741824
    ports:
      - "9092:9092"
    volumes:
      - ./kafka/data:/var/lib/kafka/data
    environment:
      CLUSTER_ID: "dbDx_GCIYsCsD23V00G1FA"
      KAFKA_NODE_ID: 1
      KAFKA_PROCESS_ROLES: "broker,controller"
      KAFKA_CONTROLLER_QUORUM_VOTERS: "1@kafka:9093"
      KAFKA_LISTENERS: "PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093"
      KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT://127.0.0.1:9092"
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT"
      KAFKA_INTER_BROKER_LISTENER_NAME: "PLAINTEXT"
      KAFKA_CONTROLLER_LISTENER_NAMES: "CONTROLLER"
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
      KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
      KAFKA_LOG_RETENTION_HOURS: 168
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true"
    networks:
      - services-network

  # =====================
  # Redis 7
  # =====================
  redis:
    image: redis:7
    container_name: redis
    restart: no
    mem_limit: 268435456
    ports:
      - "6379:6379"
    volumes:
      - ./redis/data:/data
      - ./redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
    networks:
      - services-network
    command: redis-server /usr/local/etc/redis/redis.conf

# =====================
# 网络定义
# =====================
networks:
  services-network:
    driver: bridge
posted @ 2026-08-18 11:21  RK5123153  阅读(3)  评论(0)    收藏  举报