#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: - ${DATA_DIR}/components/mnt/data:/data - ${DATA_DIR}/components/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:main # image: registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-server:main # image: openim/openim-server:main container_name: openim-server # healthcheck: # test: ["CMD-SHELL", "./scripts/check-all.sh"] # interval: 30s # timeout: 10s # retries: 5 volumes: - ./logs:/openim/openim-server/logs - ./config:/openim/openim-server/config - ./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-server:release-v1.2 # image: registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-server:release-v1.2 # # image: openim/openim-server:release-v1.2 # container_name: openim-chat # # healthcheck: # # test: ["CMD-SHELL", "./scripts/check-all.sh"] # # interval: 30s # # timeout: 10s # # retries: 5 # volumes: # - openim-chat_logs:/openim/openim-chat/logs # - openim-chat_config:/openim/openim-chat/config # - 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"