self-host/services/rocketchat/docker-compose.yml
2025-04-11 18:51:03 +00:00

56 lines
1.4 KiB
YAML

version: '3'
services:
mongodb:
image: mongo:6.0
container_name: rocketchat-mongodb
restart: always
volumes:
- /mnt/storagebox_alpha/rocketchat/mongo/db:/data/db
user: "1000:1000" # This is your custom requirement
command: mongod --oplogSize 128 --replSet rs0
networks:
- rocketchat
# We need this init container specifically because of using user mapping
mongo-init-replica:
image: mongo:6.0
container_name: rocketchat-mongo-init
restart: "no"
user: "1000:1000" # Same user as main MongoDB
command: >
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'
"
networks:
- rocketchat
depends_on:
- mongodb
rocketchat:
image: rocket.chat:latest
container_name: rocketchat
restart: always
environment:
- PORT=3000
- ROOT_URL=https://rocketchat.systemsobscure.net
- MONGO_URL=mongodb://mongodb:27017/rocketchat?replicaSet=rs0
- MONGO_OPLOG_URL=mongodb://mongodb:27017/local?replicaSet=rs0
- STATISTICS_COLLECTION=false
- UPDATE_CHECKING=false
ports:
- "8003:3000"
networks:
- rocketchat
- web
depends_on:
- mongo-init-replica
networks:
rocketchat:
web:
external: true