Rocket.Chat tails the Mongo oplog for realtime delivery, and a standalone mongod has no oplog — so the database has to be a replica set even with one member. Uses the official mongo image rather than bitnami/mongodb (which upstream's own compose uses) because Bitnami moved its catalog behind a paid registry and the free tags are no longer dependable for a long-lived install. The cost is that rs.initiate() is not automatic, so the post-start hook runs it once — guarded by rs.status() so a reinstall over restored data doesn't re-initiate a live set, and followed by a wait for the member to report itself primary. Mongo runs without auth: enabling it on a replica set also requires a shared keyfile for member-to-member auth, which is a lot of moving parts for a database that is never published outside the docker network. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 lines
547 B
XML
2 lines
547 B
XML