This commit is contained in:
emrekirman 2025-08-28 14:41:55 +03:00
parent 4e8e4bca6f
commit af0fc8b01b

View File

@ -25,33 +25,28 @@ services:
image: mongo:6 image: mongo:6
networks: networks:
- rocketchat-net - rocketchat-net
command: > command:
bash -lc ' - sh
set -e - -lc
echo "Mongo ping bekleniyor..." - |
# Mongo hazır olana kadar ping at set -e
until mongosh --host mongo:27017 --quiet --eval "db.adminCommand({ ping: 1 }).ok" | grep -q 1; do echo "Waiting for Mongo to be ready..."
sleep 2 until mongosh --host mongo:27017 --quiet --eval "db.adminCommand({ ping: 1 }).ok" | grep -q 1; do
done sleep 2
echo "Mongo ulaşılıyor. ReplSet durumu kontrol ediliyor..." done
# rs.status() initiated değilken hata atar; try/catch ile idempotent yapıyoruz echo "Mongo is up. Checking/initializing replica set..."
mongosh --host mongo:27017 --quiet --eval " mongosh --host mongo:27017 --quiet --eval '
try { try {
if (rs.status().ok === 1) { if (rs.status().ok === 1) {
print('ReplSet zaten başlatılmış.'); print("Replica set already initiated.");
} else { } else {
throw new Error('status ok değil'); throw new Error("status not ok");
}
} catch (e) {
print("Initiating replica set...");
rs.initiate({ _id: "rs0", members: [ { _id: 0, host: "mongo:27017" } ] });
} }
} catch (e) { '
print('ReplSet başlatılıyor...');
rs.initiate({
_id: \"rs0\",
members: [{ _id: 0, host: \"mongo:27017\" }]
});
printjson(rs.status());
}
"
'
deploy: deploy:
restart_policy: restart_policy:
condition: on-failure condition: on-failure