|
|
version: "3"
|
|
|
#fixme Clone openIM Server project before using docker-compose,project address:https://github.com/OpenIMSDK/Open-IM-Server.git
|
|
|
|
|
|
services:
|
|
|
mysql:
|
|
|
image: mysql:5.7
|
|
|
ports:
|
|
|
- 3306:3306
|
|
|
container_name: mysql
|
|
|
volumes:
|
|
|
- ./components/mysql/data:/var/lib/mysql
|
|
|
- /etc/localtime:/etc/localtime
|
|
|
environment:
|
|
|
MYSQL_ROOT_PASSWORD: openIM
|
|
|
restart: always
|
|
|
|
|
|
mongodb:
|
|
|
image: mongo
|
|
|
ports:
|
|
|
- 27017:27017
|
|
|
container_name: mongo
|
|
|
volumes:
|
|
|
- ./components/mongodb/data:/data/db
|
|
|
environment:
|
|
|
TZ: Asia/Shanghai
|
|
|
restart: always
|
|
|
|
|
|
redis:
|
|
|
image: redis
|
|
|
ports:
|
|
|
- 6379:6379
|
|
|
container_name: redis
|
|
|
volumes:
|
|
|
- ./components/redis/data:/data
|
|
|
#redis config file
|
|
|
#- ./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 openIM --appendonly yes
|
|
|
|
|
|
|
|
|
zookeeper:
|
|
|
image: wurstmeister/zookeeper
|
|
|
ports:
|
|
|
- 2181:2181
|
|
|
container_name: zookeeper
|
|
|
volumes:
|
|
|
- /etc/localtime:/etc/localtime
|
|
|
environment:
|
|
|
TZ: Asia/Shanghai
|
|
|
restart: always
|
|
|
|
|
|
|
|
|
kafka:
|
|
|
image: wurstmeister/kafka
|
|
|
ports:
|
|
|
- 9092:9092
|
|
|
container_name: kafka
|
|
|
restart: always
|
|
|
environment:
|
|
|
TZ: Asia/Shanghai
|
|
|
KAFKA_BROKER_ID: 0
|
|
|
KAFKA_ZOOKEEPER_CONNECT: 127.0.0.1:2181
|
|
|
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
|
|
|
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
|
|
|
network_mode: "host"
|
|
|
depends_on:
|
|
|
- zookeeper
|
|
|
|
|
|
etcd:
|
|
|
image: quay.io/coreos/etcd
|
|
|
ports:
|
|
|
- 2379:2379
|
|
|
- 2380:2380
|
|
|
container_name: etcd
|
|
|
volumes:
|
|
|
- /etc/timezone:/etc/timezone
|
|
|
- /etc/localtime:/etc/localtime
|
|
|
environment:
|
|
|
ETCDCTL_API: 3
|
|
|
restart: always
|
|
|
command: /usr/local/bin/etcd --name etcd0 --data-dir /etcd-data --listen-client-urls http://0.0.0.0:2379 --advertise-client-urls http://0.0.0.0:2379 --listen-peer-urls http://0.0.0.0:2380 --initial-advertise-peer-urls http://0.0.0.0:2380 --initial-cluster etcd0=http://0.0.0.0:2380 --initial-cluster-token tkn --initial-cluster-state new
|
|
|
|
|
|
|
|
|
#fixme-----build from dockerfile---------
|
|
|
# open-im-server:
|
|
|
# image: open_im_server
|
|
|
# ports:
|
|
|
# - 10000:10000
|
|
|
# - 17778:17778
|
|
|
# container_name: open-im-server
|
|
|
# volumes:
|
|
|
# - ./logs:/Open-IM-Server/logs
|
|
|
# - ./config/config.yaml:/Open-IM-Server/config/config.yaml
|
|
|
# restart: always
|
|
|
# build:
|
|
|
# context: .
|
|
|
# dockerfile: deploy.Dockerfile
|
|
|
# depends_on:
|
|
|
# - mysql
|
|
|
# - mongodb
|
|
|
# - redis
|
|
|
# - kafka
|
|
|
# - etcd
|
|
|
|
|
|
#fixme----build from docker hub------
|
|
|
open-im-server:
|
|
|
image: lyt1123/open_im_server
|
|
|
ports:
|
|
|
- 10000:10000
|
|
|
- 17778:17778
|
|
|
container_name: open-im-server
|
|
|
volumes:
|
|
|
- ./logs:/Open-IM-Server/logs
|
|
|
- ./config/config.yaml:/Open-IM-Server/config/config.yaml
|
|
|
restart: always
|
|
|
depends_on:
|
|
|
- kafka
|
|
|
- mysql
|
|
|
- mongodb
|
|
|
- redis
|
|
|
- etcd
|
|
|
network_mode: "host"
|
|
|
logging:
|
|
|
driver: json-file
|
|
|
options:
|
|
|
max-size: "1g"
|
|
|
max-file: "2"
|