mirror of
https://github.com/openimsdk/open-im-server.git
synced 2026-05-08 19:16:35 +08:00
feat: set config file path
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
This commit is contained in:
+162
-63
@@ -1,6 +1,38 @@
|
||||
#fixme Clone openIM Server project before using docker-compose,project address:https://github.com/OpenIMSDK/Open-IM-Server.git
|
||||
version: '3'
|
||||
|
||||
networks:
|
||||
server:
|
||||
driver: bridge
|
||||
ipam:
|
||||
driver: default
|
||||
config:
|
||||
- subnet: '${DOCKER_BRIDGE_SUBNET}'
|
||||
gateway: '${DOCKER_BRIDGE_GATEWAY}'
|
||||
|
||||
volumes:
|
||||
mysql_data:
|
||||
mongodb_data:
|
||||
mongodb_logs:
|
||||
mongodb_config:
|
||||
redis_data:
|
||||
redis_config:
|
||||
kafka_data:
|
||||
minio_data:
|
||||
minio_config:
|
||||
openim_server_logs:
|
||||
openim_server_output:
|
||||
openim_server_config:
|
||||
openim_server_scripts:
|
||||
openim_chat_logs:
|
||||
openim_chat_output:
|
||||
openim_chat_config:
|
||||
openim_chat_scripts:
|
||||
openim_server_prometheus_config:
|
||||
openim_server_grafana_datasource:
|
||||
openim_server_grafana_config:
|
||||
openim_server_grafana_dashboard:
|
||||
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:5.7
|
||||
@@ -8,11 +40,14 @@ services:
|
||||
- "${MYSQL_PORT}:3306"
|
||||
container_name: mysql
|
||||
volumes:
|
||||
- "${DATA_DIR}/components/mysql/data:/var/lib/mysql"
|
||||
- mysql_data:/var/lib/mysql
|
||||
- "/etc/localtime:/etc/localtime"
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: "${MYSQL_PASSWORD}"
|
||||
restart: always
|
||||
networks:
|
||||
server:
|
||||
ipv4_address: ${MYSQL_NETWORK_ADDRESS}
|
||||
|
||||
mongodb:
|
||||
image: mongo:6.0.2
|
||||
@@ -21,9 +56,9 @@ services:
|
||||
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"
|
||||
- mongodb_data:/data/db
|
||||
- mongodb_logs:/data/logs
|
||||
- mongodb_config:/etc/mongo
|
||||
- "./scripts/mongo-init.sh:/docker-entrypoint-initdb.d/mongo-init.sh:ro"
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
@@ -32,52 +67,68 @@ services:
|
||||
- MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASSWORD}
|
||||
- MONGO_INITDB_DATABASE=${MONGO_DATABASE}
|
||||
restart: always
|
||||
networks:
|
||||
server:
|
||||
ipv4_address: ${MONGO_NETWORK_ADDRESS}
|
||||
|
||||
redis:
|
||||
image: redis:7.0.0
|
||||
container_name: redis
|
||||
ports:
|
||||
- "${REDIS_PORT}:6379"
|
||||
container_name: redis
|
||||
volumes:
|
||||
- "${DATA_DIR}/components/redis/data:/data"
|
||||
- "${DATA_DIR}/components/redis/config/redis.conf:/usr/local/redis/config/redis.conf"
|
||||
- redis_data:/data
|
||||
- redis_config:/usr/local/redis/config/redis.conf
|
||||
environment:
|
||||
TZ: Asia/Shanghai
|
||||
restart: always
|
||||
sysctls:
|
||||
net.core.somaxconn: 1024
|
||||
command: redis-server --requirepass ${REDIS_PASSWORD} --appendonly yes
|
||||
networks:
|
||||
server:
|
||||
ipv4_address: ${REDIS_NETWORK_ADDRESS}
|
||||
|
||||
zookeeper:
|
||||
image: wurstmeister/zookeeper
|
||||
ports:
|
||||
- "${ZOOKEEPER_PORT}:2181"
|
||||
container_name: zookeeper
|
||||
volumes:
|
||||
- "/etc/localtime:/etc/localtime"
|
||||
environment:
|
||||
TZ: Asia/Shanghai
|
||||
restart: always
|
||||
network_mode: "host"
|
||||
image: bitnami/zookeeper:3.8
|
||||
container_name: zookeeper
|
||||
ports:
|
||||
- "${ZOOKEEPER_PORT}:2181"
|
||||
volumes:
|
||||
- "/etc/localtime:/etc/localtime"
|
||||
environment:
|
||||
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||
- TZ="Asia/Shanghai"
|
||||
restart: always
|
||||
networks:
|
||||
server:
|
||||
ipv4_address: ${ZOOKEEPER_NETWORK_ADDRESS}
|
||||
|
||||
kafka:
|
||||
image: wurstmeister/kafka
|
||||
image: 'bitnami/kafka:latest'
|
||||
container_name: kafka
|
||||
user: root
|
||||
restart: always
|
||||
ports:
|
||||
- "${KAFKA_PORT}:9092"
|
||||
- "${KAFKA_PORT}:9092"
|
||||
volumes:
|
||||
- ./scripts/create_topic.sh:/opt/bitnami/kafka/create_topic.sh
|
||||
- kafka_data:/bitnami/kafka
|
||||
command: >
|
||||
bash -c "
|
||||
/opt/bitnami/scripts/kafka/run.sh & sleep 5; /opt/bitnami/kafka/create_topic.sh; wait
|
||||
"
|
||||
environment:
|
||||
TZ: Asia/Shanghai
|
||||
KAFKA_BROKER_ID: 0
|
||||
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}
|
||||
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"
|
||||
- KAFKA_CFG_NODE_ID=0
|
||||
- TZ=Asia/Shanghai
|
||||
- KAFKA_CFG_PROCESS_ROLES=controller,broker
|
||||
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
|
||||
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
|
||||
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
|
||||
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
|
||||
networks:
|
||||
server:
|
||||
ipv4_address: ${KAFKA_NETWORK_ADDRESS}
|
||||
|
||||
minio:
|
||||
image: minio/minio
|
||||
@@ -86,80 +137,128 @@ services:
|
||||
- "9090:9090"
|
||||
container_name: minio
|
||||
volumes:
|
||||
- "${DATA_DIR}/components/mnt/data:/data"
|
||||
- "${DATA_DIR}/components/mnt/config:/root/.minio"
|
||||
- minio_data:/data
|
||||
- minio_config:/root/.minio
|
||||
environment:
|
||||
MINIO_ROOT_USER: "${MINIO_ACCESS_KEY}"
|
||||
MINIO_ROOT_PASSWORD: "${MINIO_SECRET_KEY}"
|
||||
restart: always
|
||||
command: minio server /data --console-address ':9090'
|
||||
networks:
|
||||
server:
|
||||
ipv4_address: ${MINIO_NETWORK_ADDRESS}
|
||||
|
||||
# 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"
|
||||
openim-web:
|
||||
image: ghcr.io/openimsdk/openim-web:latest
|
||||
container_name: openim-web
|
||||
environment:
|
||||
- OPENIM_WEB_DIST_PATH=${OPENIM_WEB_DIST_PATH}
|
||||
- OPENIM_WEB_PORT=${OPENIM_WEB_PORT}
|
||||
restart: always
|
||||
ports:
|
||||
- "${OPENIM_WEB_PORT}:11001"
|
||||
networks:
|
||||
server:
|
||||
ipv4_address: ${OPENIM_WEB_NETWORK_ADDRESS}
|
||||
|
||||
openim-server:
|
||||
# image: ghcr.io/openimsdk/openim-server:main
|
||||
image: registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-server:main
|
||||
# image: openim/openim-server:main
|
||||
# build: .
|
||||
container_name: openim-server
|
||||
ports:
|
||||
- ${OPENIM_WS_PORT}:10001
|
||||
- ${API_OPENIM_PORT}:10002
|
||||
healthcheck:
|
||||
test: ["CMD", "./scripts/check-all.sh"]
|
||||
interval: 30s
|
||||
test: ["CMD", "/openim/openim-server/scripts/check-all.sh"]
|
||||
interval: 300s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
volumes:
|
||||
- ./logs:/openim/openim-server/logs
|
||||
- ./config:/openim/openim-server/config
|
||||
- ./scripts:/openim/openim-server/scripts
|
||||
- openim_server_logs:/openim/openim-server/logs
|
||||
- openim_server_output:/openim/openim-server/_output
|
||||
- openim_server_config:/openim/openim-server/config
|
||||
- openim_server_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"
|
||||
networks:
|
||||
server:
|
||||
ipv4_address: ${OPENIM_SERVER_NETWORK_ADDRESS}
|
||||
|
||||
# openim-chat:
|
||||
# # image: ghcr.io/openimsdk/openim-chat:main
|
||||
# image: registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-chat:main
|
||||
# # image: ghcr.io/openimsdk/openim-chat:main
|
||||
# container_name: openim-chat
|
||||
# healthcheck:
|
||||
# test: ["CMD", "/openim/openim-chat/scripts/check_all.sh"]
|
||||
# interval: 300s
|
||||
# timeout: 10s
|
||||
# retries: 5
|
||||
# ports:
|
||||
# - ${OPENIM_CHAT_API_PORT}:10008
|
||||
# - ${OPENIM_ADMIN_API_PORT}:10009
|
||||
# volumes:
|
||||
# - openim_chat_logs:/openim/openim-chat/logs
|
||||
# - openim_chat_output:/openim/openim-chat/_output
|
||||
# - 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
|
||||
# - server
|
||||
# logging:
|
||||
# driver: json-file
|
||||
# options:
|
||||
# max-size: "1g"
|
||||
# max-file: "2"
|
||||
# networks:
|
||||
# server:
|
||||
# ipv4_address: ${OPENIM_CHAT_NETWORK_ADDRESS}
|
||||
|
||||
prometheus:
|
||||
image: prom/prometheus
|
||||
volumes:
|
||||
- ./.docker-compose_cfg/prometheus-compose.yml:/etc/prometheus/prometheus.yml
|
||||
- openim_server_prometheus_config:/etc/prometheus
|
||||
container_name: prometheus
|
||||
# ports:
|
||||
# - 9091:9091
|
||||
depends_on:
|
||||
- openim-server
|
||||
command: --web.listen-address=:9091 --config.file="/etc/prometheus/prometheus.yml"
|
||||
network_mode: "host"
|
||||
ports:
|
||||
- ${PROMETHEUS_PORT}:9091
|
||||
command: --web.listen-address=:9091 --config.file="/etc/prometheus"
|
||||
networks:
|
||||
server:
|
||||
ipv4_address: ${PROMETHEUS_NETWORK_ADDRESS}
|
||||
|
||||
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
|
||||
- openim_server_grafana_datasource:/etc/grafana/provisioning/datasources
|
||||
- openim_server_grafana_config:/etc/grafana
|
||||
- openim_server_grafana_dashboard:/var/lib/grafana/dashboards
|
||||
container_name: grafana
|
||||
depends_on:
|
||||
- prometheus
|
||||
network_mode: "host"
|
||||
|
||||
ports:
|
||||
- ${GRAFANA_PORT}:3000
|
||||
networks:
|
||||
server:
|
||||
ipv4_address: ${GRAFANA_NETWORK_ADDRESS}
|
||||
|
||||
# node-exporter:
|
||||
# image: quay.io/prometheus/node-exporter
|
||||
# container_name: node-exporter
|
||||
# restart: always
|
||||
# ports:
|
||||
# - "9100:9100"
|
||||
# - "9100:9100"
|
||||
|
||||
Reference in New Issue
Block a user