Files
open-im-server/docker-compose.yml
T

165 lines
4.8 KiB
YAML
Raw Normal View History

2023-08-29 18:03:37 +08:00
#fixme Clone openIM Server project before using docker-compose,project addresshttps://github.com/OpenIMSDK/Open-IM-Server.git
2023-08-30 11:32:12 +08:00
version: '3'
2023-08-29 18:03:37 +08:00
services:
mysql:
image: mysql:5.7
ports:
2023-08-30 11:32:12 +08:00
- "${MYSQL_PORT}:3306"
2023-08-29 18:03:37 +08:00
container_name: mysql
volumes:
2023-08-30 11:32:12 +08:00
- "${DATA_DIR}/components/mysql/data:/var/lib/mysql"
- "/etc/localtime:/etc/localtime"
2023-08-29 18:03:37 +08:00
environment:
2023-08-30 11:32:12 +08:00
MYSQL_ROOT_PASSWORD: "${MYSQL_PASSWORD}"
2023-08-29 18:03:37 +08:00
restart: always
mongodb:
image: mongo:6.0.2
ports:
2023-08-30 11:32:12 +08:00
- "${MONGO_PORT}:27017"
2023-08-29 18:03:37 +08:00
container_name: mongo
command: --wiredTigerCacheSizeGB 1 --auth
volumes:
2023-08-30 11:32:12 +08:00
- "${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"
2023-08-29 18:03:37 +08:00
environment:
- TZ=Asia/Shanghai
- wiredTigerCacheSizeGB=1
2023-08-30 11:32:12 +08:00
- MONGO_INITDB_ROOT_USERNAME=${MONGO_USERNAME}
- MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASSWORD}
- MONGO_INITDB_DATABASE=${MONGO_DATABASE}
2023-08-29 18:03:37 +08:00
restart: always
redis:
image: redis:7.0.0
ports:
2023-08-30 11:32:12 +08:00
- "${REDIS_PORT}:6379"
2023-08-29 18:03:37 +08:00
container_name: redis
volumes:
2023-08-30 11:32:12 +08:00
- "${DATA_DIR}/components/redis/data:/data"
- "${DATA_DIR}/components/redis/config/redis.conf:/usr/local/redis/config/redis.conf"
2023-08-29 18:03:37 +08:00
environment:
TZ: Asia/Shanghai
restart: always
sysctls:
net.core.somaxconn: 1024
2023-08-30 11:32:12 +08:00
command: redis-server --requirepass ${REDIS_PASSWORD} --appendonly yes
2023-08-29 18:03:37 +08:00
zookeeper:
image: wurstmeister/zookeeper
ports:
2023-08-30 11:32:12 +08:00
- "${ZOOKEEPER_PORT}:2181"
2023-08-29 18:03:37 +08:00
container_name: zookeeper
volumes:
2023-08-30 11:32:12 +08:00
- "/etc/localtime:/etc/localtime"
2023-08-29 18:03:37 +08:00
environment:
TZ: Asia/Shanghai
restart: always
network_mode: "host"
kafka:
image: wurstmeister/kafka
container_name: kafka
restart: always
ports:
2023-08-30 11:32:12 +08:00
- "${KAFKA_PORT}:9092"
2023-08-29 18:03:37 +08:00
environment:
TZ: Asia/Shanghai
KAFKA_BROKER_ID: 0
2023-08-30 11:32:12 +08:00
KAFKA_ZOOKEEPER_CONNECT: "${ZOOKEEPER_ADDRESS}:${ZOOKEEPER_PORT}"
KAFKA_CREATE_TOPICS: "${KAFKA_LATESTMSG_REDIS_TOPIC}:8:1,${KAFKA_MSG_PUSH_TOPIC}:8:1,${KAFKA_OFFLINEMSG_MONGO_TOPIC}:8:1"
KAFKA_ADVERTISED_LISTENERS: INSIDE://${KAFKA_ADDR}:${KAFKA_PORT},OUTSIDE://CHANGE_TO_YOUR_EXTERNAL_IP:${KAFKA_PORT}
2023-08-29 18:03:37 +08:00
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:
2023-08-30 11:32:12 +08:00
- "${MINIO_PORT}:9000"
- "9090:9090"
2023-08-29 18:03:37 +08:00
container_name: minio
volumes:
2023-08-30 11:32:12 +08:00
- "${DATA_DIR}/components/mnt/data:/data"
- "${DATA_DIR}/components/mnt/config:/root/.minio"
2023-08-29 18:03:37 +08:00
environment:
2023-08-30 11:32:12 +08:00
MINIO_ROOT_USER: "${MINIO_ACCESS_KEY}"
MINIO_ROOT_PASSWORD: "${MINIO_SECRET_KEY}"
2023-08-29 18:03:37 +08:00
restart: always
command: minio server /data --console-address ':9090'
2023-08-30 16:21:39 +08:00
# openim-web:
# image: ghcr.io/openimsdk/openim-web:main
# container_name: openim-web
# environment:
# - OPENIM_WEB_DIST_PATH=${OPENIM_WEB_DIST_PATH}
# - OPENIM_WEB_PPRT=${OPENIM_WEB_PPRT}
# restart: always
# ports:
# - "${OPENIM_WEB_PPRT}:11001"
2023-08-29 18:03:37 +08:00
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", "./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"
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:
2023-08-29 22:35:08 +08:00
# - "9100:9100"