@@ -6,12 +6,35 @@ services:
66 mongo :
77 image : " ${MONGO_IMAGE}"
88 container_name : mongo
9- command : ["/bin/bash", "-c", "/docker-entrypoint-initdb.d/mongo-init.sh; docker-entrypoint.sh mongod --wiredTigerCacheSizeGB 1 --auth"]
9+ command : >
10+ bash -c '
11+ docker-entrypoint.sh mongod --wiredTigerCacheSizeGB $$wiredTigerCacheSizeGB --auth &
12+ until mongosh -u $$MONGO_INITDB_ROOT_USERNAME -p $$MONGO_INITDB_ROOT_PASSWORD --authenticationDatabase admin --eval "db.runCommand({ ping: 1 })" &>/dev/null; do
13+ echo "Waiting for MongoDB to start..."
14+ sleep 1
15+ done &&
16+ mongosh -u $$MONGO_INITDB_ROOT_USERNAME -p $$MONGO_INITDB_ROOT_PASSWORD --authenticationDatabase admin --eval "
17+ db = db.getSiblingDB(\"$$MONGO_INITDB_DATABASE\");
18+ if (!db.getUser(\"$$MONGO_OPENIM_USERNAME\")) {
19+ db.createUser({
20+ user: \"$$MONGO_OPENIM_USERNAME\",
21+ pwd: \"$$MONGO_OPENIM_PASSWORD\",
22+ roles: [{role: \"readWrite\", db: \"$$MONGO_INITDB_DATABASE\"}]
23+ });
24+ print(\"User created successfully: \");
25+ print(\"Username: $$MONGO_OPENIM_USERNAME\");
26+ print(\"Password: $$MONGO_OPENIM_PASSWORD\");
27+ print(\"Database: $$MONGO_INITDB_DATABASE\");
28+ } else {
29+ print(\"User already exists in database: $$MONGO_INITDB_DATABASE, Username: $$MONGO_OPENIM_USERNAME\");
30+ }
31+ " &&
32+ tail -f /dev/null
33+ '
1034 volumes :
1135 - " ${DATA_DIR}/components/mongodb/data/db:/data/db"
1236 - " ${DATA_DIR}/components/mongodb/data/logs:/data/logs"
1337 - " ${DATA_DIR}/components/mongodb/data/conf:/etc/mongo"
14- - " ./scripts/mongo-init.sh:/docker-entrypoint-initdb.d/mongo-init.sh:ro"
1538 environment :
1639 - TZ=Asia/Shanghai
1740 - wiredTigerCacheSizeGB=1
@@ -65,10 +88,7 @@ services:
6588 user : root
6689 restart : always
6790 volumes :
68- - ./scripts/create-topic.sh:/opt/bitnami/kafka/create-topic.sh
6991 - " ${DATA_DIR}/components/kafka:/bitnami/kafka"
70- command : >
71- bash -c "/opt/bitnami/scripts/kafka/run.sh & /opt/bitnami/kafka/create-topic.sh; wait"
7292 environment :
7393 TZ : Asia/Shanghai
7494 KAFKA_CFG_NODE_ID : 0
@@ -78,6 +98,8 @@ services:
7898 KAFKA_CFG_ADVERTISED_LISTENERS : PLAINTEXT://kafka:9092,EXTERNAL://kafka:9094
7999 KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP : CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
80100 KAFKA_CFG_CONTROLLER_LISTENER_NAMES : CONTROLLER
101+ KAFKA_NUM_PARTITIONS : 8
102+ KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE : " true"
81103 networks :
82104 - openim
83105
@@ -205,6 +227,12 @@ services:
205227 - IMENV_LOG_REMAINLOGLEVEL=${LOG_LEVEL}
206228 - IMENV_OPENIM_API_PROMETHEUS_GRAFANAURL=${GRAFANA_URL}
207229 restart : always
230+ depends_on :
231+ - mongo
232+ - redis
233+ - etcd
234+ - kafka
235+ - minio
208236 networks :
209237 - openim
210238
@@ -232,5 +260,12 @@ services:
232260 - " ${CHAT_API_PORT}:10008"
233261 - " ${ADMIN_API_PORT}:10009"
234262 restart : always
263+ depends_on :
264+ - mongo
265+ - redis
266+ - etcd
267+ - kafka
268+ - minio
269+ - openim-server
235270 networks :
236271 - openim
0 commit comments