add healthcheck to mongodb to init replicaset if not already init

This commit is contained in:
Alex Holliday
2025-04-25 19:44:16 -07:00
parent db20b4c1ff
commit 36f528fbf9
3 changed files with 17 additions and 4 deletions

View File

@@ -52,6 +52,13 @@ services:
- "27017:27017"
volumes:
- ./mongo/data:/data/db
- ./mongo/init/init.js:/docker-entrypoint-initdb.d/init.js
# - ./mongo/init/init.js:/docker-entrypoint-initdb.d/init.js // No longer needed
env_file:
- mongo.env
healthcheck:
test: echo "try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'mongodb:27017'}]}) }" | mongosh --port 27017 --quiet
interval: 5s
timeout: 30s
start_period: 0s
start_interval: 1s
retries: 30

View File

@@ -2,7 +2,7 @@ function initiateReplicaSet() {
try {
rs.initiate({
_id: "rs0",
members: [{ _id: 0, host: "mongodb:27017" }],
members: [{ _id: 0, host: "localhost:27017" }],
});
} catch (e) {
print("Replica set already initiated or error occurred: " + e);

View File

@@ -54,7 +54,13 @@ services:
- "27017:27017"
volumes:
- ./mongo/data:/data/db
- ./mongo/init/create_users.js:/docker-entrypoint-initdb.d/create_users.js
- ./mongo/init/init_replica_set.js:/docker-entrypoint-initdb.d/init_replica_set.js
# - ./mongo/init/02_create_users.js:/docker-entrypoint-initdb.d/02_create_users.js // No longer needed
env_file:
- mongo.env
healthcheck:
test: echo "try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'mongodb:27017'}]}) }" | mongosh --port 27017 --quiet
interval: 5s
timeout: 30s
start_period: 0s
start_interval: 1s
retries: 30