self-host/services/rocketchat/docker-compose.yml

57 lines
1.4 KiB
YAML
Raw Normal View History

2025-04-11 18:51:03 +00:00
version: '3'
2025-04-08 18:18:03 +01:00
services:
2025-04-11 18:51:03 +00:00
mongodb:
2025-04-08 18:18:03 +01:00
image: mongo:6.0
container_name: rocketchat-mongodb
2025-04-11 18:51:03 +00:00
restart: always
2025-04-08 18:18:03 +01:00
volumes:
- /mnt/storagebox_alpha/rocketchat/mongo/db:/data/db
2025-04-11 18:51:03 +00:00
user: "1000:1000" # This is your custom requirement
command: mongod --oplogSize 128 --replSet rs0
2025-04-08 18:18:03 +01:00
networks:
- rocketchat
2025-04-11 18:51:03 +00:00
# We need this init container specifically because of using user mapping
2025-04-08 18:18:03 +01:00
mongo-init-replica:
image: mongo:6.0
container_name: rocketchat-mongo-init
2025-04-11 18:51:03 +00:00
restart: "no"
user: "1000:1000" # Same user as main MongoDB
2025-04-08 18:18:03 +01:00
command: >
2025-04-11 18:51:03 +00:00
bash -c "
echo 'Waiting for MongoDB to start...'
sleep 15
echo 'Initializing replica set...'
mongosh --host mongodb --eval 'rs.initiate({_id: \"rs0\", members: [{_id: 0, host: \"mongodb:27017\"}]})'
echo 'Initialization complete'
"
2025-04-08 18:18:03 +01:00
networks:
- rocketchat
2025-04-11 18:51:03 +00:00
depends_on:
- mongodb
2025-04-08 18:18:03 +01:00
rocketchat:
image: rocket.chat:latest
container_name: rocketchat
2025-04-11 18:51:03 +00:00
restart: always
2025-04-08 18:18:03 +01:00
environment:
- PORT=3000
- ROOT_URL=https://rocketchat.systemsobscure.net
2025-04-11 18:51:03 +00:00
- MONGO_URL=mongodb://mongodb:27017/rocketchat?replicaSet=rs0
- MONGO_OPLOG_URL=mongodb://mongodb:27017/local?replicaSet=rs0
2025-04-08 18:18:03 +01:00
- STATISTICS_COLLECTION=false
- UPDATE_CHECKING=false
ports:
- "8003:3000"
networks:
- rocketchat
- web
2025-04-11 18:51:03 +00:00
depends_on:
- mongo-init-replica
2025-04-08 18:18:03 +01:00
networks:
rocketchat:
web:
external: true