open-im-server/docker-compose.yml
truongpx-Mac 33aa3354be update
2023-11-02 20:09:46 +07:00

215 lines
6.5 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#fixme Clone openIM Server project before using docker-compose,project addresshttps://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}'
services:
mysql:
image: bitnami/mysql:latest
ports:
- '${MYSQL_PORT}:3306'
container_name: mysql
volumes:
- '${DATA_DIR}/components/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: arm64v8/mongo:7.0-rc-jammy
# image: bitnami/mongodb:latest
image: mongo:7.0-rc-jammy
ports:
- '${MONGO_PORT}: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:/bitnami/scripts/mongo-init.sh:ro
# - ./scripts/mongo-init.sh:/docker-entrypoint-initdb.d/mongo-init.sh:ro"
environment:
- TZ=Asia/Shanghai
- wiredTigerCacheSizeGB=1
- MONGO_INITDB_ROOT_USERNAME=${MONGO_USERNAME}
- MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASSWORD}
- MONGO_INITDB_DATABASE=${MONGO_DATABASE}
restart: always
networks:
server:
ipv4_address: ${MONGO_NETWORK_ADDRESS}
redis:
image: bitnami/redis:latest
user: root
container_name: redis
ports:
- '${REDIS_PORT}:6379'
volumes:
- '${DATA_DIR}/components/redis/data:/data'
- '${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 ${REDIS_PASSWORD} --appendonly yes
networks:
server:
ipv4_address: ${REDIS_NETWORK_ADDRESS}
zookeeper:
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: 'bitnami/kafka:3.5.1'
image: 'bitnami/kafka:latest'
container_name: kafka
user: root
# user: nfsnobody
restart: always
ports:
- '${KAFKA_PORT}:9094'
volumes:
- ./scripts/create_topic.sh:/opt/bitnami/kafka/create_topic.sh
- ${DATA_DIR}/components/kafka:/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_CFG_NODE_ID=0
- KAFKA_CFG_PROCESS_ROLES=controller,broker
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@<your_host>:9093
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092,EXTERNAL://${DOCKER_BRIDGE_GATEWAY}:${KAFKA_PORT}
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
networks:
server:
ipv4_address: ${KAFKA_NETWORK_ADDRESS}
minio:
image: minio/minio
user: root
ports:
- '${MINIO_PORT}:9000'
- '9090:9090'
container_name: minio
volumes:
- '${DATA_DIR}/components/mnt/data:/data'
- '${DATA_DIR}/components/mnt/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:latest
# # image: registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-web:latest
# # image: openim/openim-web:latest
# image: ${IMAGE_REGISTRY}/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
# image: ${IMAGE_REGISTRY}/openim-server:main
# # build: .
# container_name: openim-server
# ports:
# - ${OPENIM_WS_PORT}:10001
# - ${API_OPENIM_PORT}:10002
# healthcheck:
# test: ["CMD", "/openim/openim-server/scripts/check-all.sh"]
# interval: 300s
# timeout: 10s
# retries: 5
# volumes:
# - ./logs:/openim/openim-server/logs
# - ./_output/logs:/openim/openim-server/_output/logs
# - ./config:/openim/openim-server/config
# - ./scripts:/openim/openim-server/scripts
# restart: always
# depends_on:
# - kafka
# - mysql
# - mongodb
# - redis
# - minio
# logging:
# driver: json-file
# options:
# max-size: "1g"
# max-file: "2"
# networks:
# server:
# ipv4_address: ${OPENIM_SERVER_NETWORK_ADDRESS}
# prometheus:
# image: prom/prometheus
# volumes:
# - ./.docker-compose_cfg/prometheus-compose.yml:/etc/prometheus/prometheus.yml
# container_name: prometheus
# ports:
# - ${PROMETHEUS_PORT}:9091
# depends_on:
# - openim-server
# command: --web.listen-address=:9091 --config.file="/etc/prometheus/prometheus.yml"
# networks:
# openim-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
# container_name: grafana
# ports:
# - ${GRAFANA_PORT}:3000
# depends_on:
# - prometheus
# networks:
# openim-server:
# ipv4_address: ${GRAFANA_NETWORK_ADDRESS}