mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-10-31 00:12:18 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			189 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			189 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| #fixme  Clone openIM Server project before using docker-compose,project address:https://github.com/OpenIMSDK/Open-IM-Server.git
 | ||
| version: "3"
 | ||
| services:
 | ||
|   mysql:
 | ||
|     image: mysql:5.7
 | ||
|     ports:
 | ||
|       - 13306:3306
 | ||
|       - 23306:33060
 | ||
|     container_name: mysql
 | ||
|     volumes:
 | ||
|       - ${DATA_DIR}/components/mysql/data:/var/lib/mysql
 | ||
|       - /etc/localtime:/etc/localtime
 | ||
|     environment:
 | ||
|       MYSQL_ROOT_PASSWORD: ${PASSWORD}
 | ||
|     restart: always
 | ||
| 
 | ||
|   mongodb:
 | ||
|     image: mongo:6.0.2
 | ||
|     ports:
 | ||
|       - 37017:27017
 | ||
|     container_name: mongo
 | ||
|     command: --wiredTigerCacheSizeGB 1 --auth
 | ||
|     volumes:
 | ||
|       - ${DATA_DIR}/components/mongodb/data/db:/data/db
 | ||
|       - ${DATA_DIR}/components/mongodb/data/logs:/data/logs
 | ||
|       - ${DATA_DIR}/components/mongodb/data/conf:/etc/mongo
 | ||
|       - ./scripts/mongo-init.sh:/docker-entrypoint-initdb.d/mongo-init.sh:ro
 | ||
|     environment:
 | ||
|       - TZ=Asia/Shanghai
 | ||
|       # cache
 | ||
|       - wiredTigerCacheSizeGB=1
 | ||
|       - MONGO_INITDB_ROOT_USERNAME=${USER}
 | ||
|       - MONGO_INITDB_ROOT_PASSWORD=${PASSWORD}
 | ||
|       - MONGO_INITDB_DATABASE=openIM
 | ||
|       - MONGO_USERNAME=${USER}
 | ||
|       - MONGO_PASSWORD=${PASSWORD}
 | ||
|     restart: always
 | ||
| 
 | ||
|   redis:
 | ||
|     image: redis:7.0.0
 | ||
|     ports:
 | ||
|       - 16379:6379
 | ||
|     container_name: redis
 | ||
|     volumes:
 | ||
|       - ${DATA_DIR}/components/redis/data:/data
 | ||
|       #redis config file
 | ||
|       - ${DATA_DIR}/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 ${PASSWORD} --appendonly yes
 | ||
| 
 | ||
|   zookeeper:
 | ||
|     image: wurstmeister/zookeeper
 | ||
|     ports:
 | ||
|       - 2181:2181
 | ||
|     container_name: zookeeper
 | ||
|     volumes:
 | ||
|       - /etc/localtime:/etc/localtime
 | ||
|     environment:
 | ||
|       TZ: Asia/Shanghai
 | ||
|     restart: always
 | ||
|     network_mode: "host"
 | ||
| 
 | ||
|   kafka:
 | ||
|     image: wurstmeister/kafka
 | ||
|     container_name: kafka
 | ||
|     restart: always
 | ||
|     ports:
 | ||
|       - 9092:9092
 | ||
|     environment:
 | ||
|       TZ: Asia/Shanghai
 | ||
|       KAFKA_BROKER_ID: 0
 | ||
|       KAFKA_ZOOKEEPER_CONNECT: 127.0.0.1:2181
 | ||
|       KAFKA_CREATE_TOPICS: "latestMsgToRedis:8:1,msgToPush:8:1,offlineMsgToMongoMysql: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
 | ||
|     network_mode: "host"
 | ||
| 
 | ||
|   minio:
 | ||
|     image: minio/minio
 | ||
|     ports:
 | ||
|       - 10005:9000
 | ||
|       - 9090:9090
 | ||
|     container_name: minio
 | ||
|     volumes:
 | ||
|       - /mnt/data:/data
 | ||
|       - /mnt/config:/root/.minio
 | ||
|     environment:
 | ||
|       MINIO_ROOT_USER: ${USER}
 | ||
|       MINIO_ROOT_PASSWORD: ${PASSWORD}
 | ||
|     restart: always
 | ||
|     command: minio server /data --console-address ':9090'
 | ||
| 
 | ||
|   # openim-server:
 | ||
|   #   # image: ghcr.io/openimsdk/openim-server:latest
 | ||
|   #   image: registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-server:latest
 | ||
|   #   # image: openim/openim-server:latest
 | ||
|   #   # build: .
 | ||
|   #   container_name: openim-server
 | ||
|   #   # healthcheck:
 | ||
|   #   #   test: ["CMD-SHELL", "./scripts/check-all.sh"]
 | ||
|   #   #   interval: 30s
 | ||
|   #   #   timeout: 10s
 | ||
|   #   #   retries: 5
 | ||
|   #   volumes:
 | ||
|   #     - ${DATA_DIR}/_output/openim/logs:/openim/openim-server/logs
 | ||
|   #     - ${DATA_DIR}/config:/openim/openim-server/config
 | ||
|   #     - ${DATA_DIR}/scripts:/openim/openim-server/scripts
 | ||
|   #   restart: always
 | ||
|   #   depends_on:
 | ||
|   #     - zookeeper
 | ||
|   #     - kafka
 | ||
|   #     - mysql
 | ||
|   #     - mongodb
 | ||
|   #     - redis
 | ||
|   #     - minio
 | ||
|   #   network_mode: "host"
 | ||
|   #   logging:
 | ||
|   #     driver: json-file
 | ||
|   #     options:
 | ||
|   #       max-size: "1g"
 | ||
|   #       max-file: "2"
 | ||
| 
 | ||
|   openim-chat:
 | ||
|     # image: ghcr.io/openimsdk/openim-chat:latest
 | ||
|     image: registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-chat:latest
 | ||
|     # image: openim/openim-chat:latest
 | ||
|     container_name: openim-chat
 | ||
|     healthcheck:
 | ||
|       test: ["CMD-SHELL", "./scripts/check-all.sh"]
 | ||
|       interval: 30s
 | ||
|       timeout: 10s
 | ||
|       retries: 5
 | ||
|     volumes:
 | ||
|       - ${DATA_DIR}/_output/openim/openim-chat/logs:/openim/openim-chat/logs
 | ||
|       - ${DATA_DIR}/_output/openim/openim-chat/config:/openim/openim-chat/config
 | ||
|       - ${DATA_DIR}/_output/openim/openim-chat/scripts:/openim/openim-chat/scripts
 | ||
|     restart: always
 | ||
|     user: root:root
 | ||
|     depends_on:
 | ||
|       - mysql
 | ||
|       - mongodb
 | ||
|       - redis
 | ||
|       - minio
 | ||
|       - openim-server
 | ||
|     network_mode: "host"
 | ||
|     logging:
 | ||
|       driver: json-file
 | ||
|       options:
 | ||
|         max-size: "1g"
 | ||
|         max-file: "2"
 | ||
| 
 | ||
|   # prometheus:
 | ||
|   #   image: prom/prometheus
 | ||
|   #   volumes:
 | ||
|   #     - ./.docker-compose_cfg/prometheus-compose.yml:/etc/prometheus/prometheus.yml
 | ||
|   #   container_name: prometheus
 | ||
|   #   #    ports:
 | ||
|   #   #    - 9091:9091
 | ||
|   #   depends_on:
 | ||
|   #     - openim-server
 | ||
|   #   command: --web.listen-address=:9091 --config.file="/etc/prometheus/prometheus.yml"
 | ||
|   #   network_mode: "host"
 | ||
| 
 | ||
|   # grafana:
 | ||
|   #   image: grafana/grafana
 | ||
|   #   volumes:
 | ||
|   #     - ./.docker-compose_cfg/datasource-compose.yaml:/etc/grafana/provisioning/datasources/datasource.yaml
 | ||
|   #     - ./.docker-compose_cfg/grafana.ini:/etc/grafana/grafana.ini
 | ||
|   #     - ./.docker-compose_cfg/node-exporter-full_rev1.json:/var/lib/grafana/dashboards/node-exporter-full_rev1.json
 | ||
|   #   container_name: grafana
 | ||
|   #   depends_on:
 | ||
|   #     - prometheus
 | ||
|   #   network_mode: "host"
 | ||
| 
 | ||
|   # node-exporter:
 | ||
|   #   image: quay.io/prometheus/node-exporter
 | ||
|   #   container_name: node-exporter
 | ||
|   #   restart: always
 | ||
|   #   ports:
 | ||
|   #     - "9100:9100"
 |