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