From 14959b7d96f2cd71edba3e70438d3097c283d01e Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 4 Jul 2022 11:53:11 +0800 Subject: [PATCH] add docker-compose shard cluster --- docker-compose-mongos.yaml | 139 ++++++++++++++++++++++++++++++ docker-compose-shard-cluster.yaml | 79 +++++++++++++++++ 2 files changed, 218 insertions(+) create mode 100644 docker-compose-mongos.yaml create mode 100644 docker-compose-shard-cluster.yaml diff --git a/docker-compose-mongos.yaml b/docker-compose-mongos.yaml new file mode 100644 index 000000000..309ccb98b --- /dev/null +++ b/docker-compose-mongos.yaml @@ -0,0 +1,139 @@ +version: "3" +#fixme Clone openIM Server project before using docker-compose,project address:https://github.com/OpenIMSDK/Open-IM-Server.git + +services: + mysql: + image: mysql:5.7 + ports: + - 13306:3306 + - 23306:33060 + container_name: mysql + volumes: + - ./components/mysql/data:/var/lib/mysql + - /etc/localtime:/etc/localtime + environment: + MYSQL_ROOT_PASSWORD: openIM + restart: always + + mongos: + image: mongo:latest + ports: + - 37017:27017 + container_name: mongos + command: mongos --configdb config/103.116.45.174:27019 --bind_ip_all + volumes: + - ./components/mongos_mongodb/data/db:/data/db + - ./components/mongos_mongodb/data/logs:/data/logs + - ./components/mongos_mongodb/data/conf:/etc/mongo + - ./components/mongos_mongodb/data/configdb:/data/configdb + environment: + - TZ=Asia/Shanghai + # cache + - wiredTigerCacheSizeGB=1 + # environment: + # - MONGO_INITDB_ROOT_USERNAME=openIM + # - MONGO_INITDB_ROOT_PASSWORD=openIM + + + #TZ: Asia/Shanghai + restart: always + + + redis: + image: redis + ports: + - 16379:6379 + container_name: redis + volumes: + - ./components/redis/data:/data + #redis config file + - ./components/redis/config/redis.conf:/usr/local/redis/config/redis.conf + environment: + TZ: Asia/Shanghai + restart: always + sysctls: + net.core.somaxconn: 1024 + command: redis-server --requirepass openIM --appendonly yes + + + zookeeper: + image: wurstmeister/zookeeper + ports: + - 2181:2181 + container_name: zookeeper + volumes: + - /etc/localtime:/etc/localtime + environment: + TZ: Asia/Shanghai + restart: always + + + kafka: + image: wurstmeister/kafka + container_name: kafka + restart: always + ports: + - 9092:9092 + environment: + TZ: Asia/Shanghai + KAFKA_BROKER_ID: 0 + KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 + KAFKA_CREATE_TOPICS: "ws2ms_chat:8:1,ms2ps_chat:8:1,msg_to_mongo:8:1" + KAFKA_ADVERTISED_LISTENERS: INSIDE://127.0.0.1:9092,OUTSIDE://103.116.45.174:9092 + KAFKA_LISTENERS: INSIDE://:9092,OUTSIDE://:9093 + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT" + KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE + depends_on: + - zookeeper + + etcd: + image: quay.io/coreos/etcd + ports: + - 2379:2379 + - 2380:2380 + container_name: etcd + volumes: + - /etc/timezone:/etc/timezone + - /etc/localtime:/etc/localtime + environment: + ETCDCTL_API: 3 + restart: always + command: /usr/local/bin/etcd --name etcd0 --data-dir /etcd-data --listen-client-urls http://0.0.0.0:2379 --advertise-client-urls http://0.0.0.0:2379 --listen-peer-urls http://0.0.0.0:2380 --initial-advertise-peer-urls http://0.0.0.0:2380 --initial-cluster etcd0=http://0.0.0.0:2380 --initial-cluster-token tkn --initial-cluster-state new + + minio: + image: minio/minio + ports: + - 10005:9000 + - 9090:9090 + container_name: minio + volumes: + - /mnt/data:/data + - /mnt/config:/root/.minio + environment: + MINIO_ROOT_USER: user12345 + MINIO_ROOT_PASSWORD: key12345 + restart: always + command: minio server /data --console-address ':9090' + + open_im_server: + image: openim/open_im_server:v2.2.0 + container_name: open_im_server + volumes: + - ./logs:/Open-IM-Server/logs + - ./config/config.yaml:/Open-IM-Server/config/config.yaml + - ./db/sdk:/Open-IM-Server/db/sdk + - ./script:/Open-IM-Server/script + restart: always + depends_on: + - kafka + - mysql + - mongodb + - redis + - etcd + - minio + network_mode: "host" + logging: + driver: json-file + options: + max-size: "1g" + max-file: "2" diff --git a/docker-compose-shard-cluster.yaml b/docker-compose-shard-cluster.yaml new file mode 100644 index 000000000..8bc56b83d --- /dev/null +++ b/docker-compose-shard-cluster.yaml @@ -0,0 +1,79 @@ +version: '3' +networks: + mongo-network: + external: false +services: + # 配置服务器configsvr + config: + image: mongo:latest + networks: + - mongo-network + container_name: config + restart: always + ports: + - 27019:27019 + command: --configsvr --replSet "config" --bind_ip_all + volumes: + - ./components/config_mongodb/data/db:/data/db + - ./components/config_mongodb/data/logs:/data/logs + - ./components/config_mongodb/data/conf:/etc/mongo + - ./components/config_mongodb/data/configdb:/data/configdb + environment: + - TZ=Asia/Shanghai + # cache + - wiredTigerCacheSizeGB=1 + + # shard分片1 + shard1: + image: mongo:latest + networks: + - mongo-network + container_name: shard1 + restart: always + ports: + - 27118:27018 + command: --shardsvr --replSet "shard1" --bind_ip_all + volumes: + - /data01/mongo/shard1/db:/data/db + - /data01/mongo/shard1/configdb:/data/configdb + environment: + - TZ=Asia/Shanghai + # cache + - wiredTigerCacheSizeGB=1 + + # shard分片2 + shard2: + image: mongo:latest + networks: + - mongo-network + container_name: shard2 + restart: always + ports: + - 27218:27018 + command: --shardsvr --replSet "shard2" --bind_ip_all + volumes: + - /data02/mongo/shard2/db:/data/db + - /data02/mongo/shard2/configdb:/data/configdb + environment: + - TZ=Asia/Shanghai + # cache + - wiredTigerCacheSizeGB=1 + # - ${PWD}/key.file:/data/mongodb/key.file + + # shard分片3 + shard3: + image: mongo:latest + networks: + - mongo-network + container_name: shard3 + restart: always + ports: + - 27318:27018 + command: --shardsvr --replSet "shard3" --bind_ip_all + volumes: + - /data03/mongo/shard3/db:/data/db + - /data03/mongo/shard3/configdb:/data/configdb + environment: + - TZ=Asia/Shanghai + # cache + - wiredTigerCacheSizeGB=1