From 1df8d5832f2f64fed280ecc91e61e224ea5189e7 Mon Sep 17 00:00:00 2001 From: DesBlock Date: Tue, 24 Sep 2024 12:22:22 -0400 Subject: [PATCH] Enable Docker Replication Sets (#15298) - Enable docker replication sets using command - Initialize replication set using heartbeat and then use replication set status as heartbeat. - Prevent client from starting until mongo is in a state stable for connections. --- docker-compose.dev.yml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 79f806a5e6..56dba30aeb 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -22,7 +22,8 @@ services: dockerfile: ./Dockerfile-Dev command: ["npm", "start"] depends_on: - - mongo + mongo: + condition: service_healthy environment: - NODE_DB_URI=mongodb://mongo/habitrpg networks: @@ -33,7 +34,16 @@ services: - .:/usr/src/habitica - /usr/src/habitica/node_modules mongo: - image: mongo:3.6 + image: mongo:5.0.23 + restart: unless-stopped + command: ["--replSet", "rs", "--bind_ip_all", "--port", "27017"] + healthcheck: + test: echo "try { rs.status() } catch (err) { rs.initiate() }" | mongosh --port 27017 --quiet + interval: 10s + timeout: 30s + start_period: 0s + start_interval: 1s + retries: 30 networks: - habitica ports: