This commit is contained in:
emrekirman 2025-08-28 14:32:41 +03:00
parent ea120e58ff
commit 5df3527eea

View File

@ -25,15 +25,38 @@ services:
image: mongo:6
networks:
- rocketchat-net
# rs.init zaten yapılmışsa hata vermesin diye OR'lu komut
command: >
bash -lc "
mongosh --host mongo:27017 --quiet --eval
'try { rs.initiate({_id:\"rs0\", members:[{_id:0, host:\"mongo:27017\"}]}) } catch(e) { rs.status().ok }'
bash -lc '
set -e
echo "Mongo ping bekleniyor..."
# Mongo hazır olana kadar ping at
until mongosh --host mongo:27017 --quiet --eval "db.adminCommand({ ping: 1 }).ok" | grep -q 1; do
sleep 2
done
echo "Mongo ulaşılıyor. ReplSet durumu kontrol ediliyor..."
# rs.status() initiated değilken hata atar; try/catch ile idempotent yapıyoruz
mongosh --host mongo:27017 --quiet --eval "
try {
if (rs.status().ok === 1) {
print('ReplSet zaten başlatılmış.');
} else {
throw new Error('status ok değil');
}
} catch (e) {
print('ReplSet başlatılıyor...');
rs.initiate({
_id: \"rs0\",
members: [{ _id: 0, host: \"mongo:27017\" }]
});
printjson(rs.status());
}
"
'
deploy:
restart_policy:
condition: none
condition: on-failure
delay: 5s
max_attempts: 10
placement:
constraints:
- node.labels.platform == prod