initial version
This commit is contained in:
Executable
+28
@@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
# Initiates the single-node replica set "rs0" if it does not exist yet and
|
||||
# waits until the member is primary. Runs as a one-shot container.
|
||||
set -euo pipefail
|
||||
|
||||
HOST="${MONGO_HOST:-al-mongo}"
|
||||
PORT="${MONGO_PORT:-27017}"
|
||||
|
||||
echo "Waiting for MongoDB at ${HOST}:${PORT} ..."
|
||||
until mongosh --host "${HOST}" --port "${PORT}" --quiet \
|
||||
--eval 'db.adminCommand({ ping: 1 }).ok' >/dev/null 2>&1; do
|
||||
sleep 2
|
||||
done
|
||||
|
||||
if [ "$(mongosh --host "${HOST}" --port "${PORT}" --quiet \
|
||||
--eval 'try { rs.status().ok } catch (e) { 0 }')" != "1" ]; then
|
||||
echo "Initiating replica set rs0 ..."
|
||||
mongosh --host "${HOST}" --port "${PORT}" --quiet \
|
||||
--eval 'rs.initiate({ _id: "rs0", members: [{ _id: 0, host: "al-mongo:27017" }] })'
|
||||
fi
|
||||
|
||||
echo "Waiting for primary ..."
|
||||
until mongosh --host "${HOST}" --port "${PORT}" --quiet \
|
||||
--eval 'db.hello().isWritablePrimary' | grep -q true; do
|
||||
sleep 2
|
||||
done
|
||||
|
||||
echo "Replica set rs0 is ready."
|
||||
Reference in New Issue
Block a user