.
This commit is contained in:
parent
ea120e58ff
commit
5df3527eea
|
|
@ -25,15 +25,38 @@ services:
|
||||||
image: mongo:6
|
image: mongo:6
|
||||||
networks:
|
networks:
|
||||||
- rocketchat-net
|
- rocketchat-net
|
||||||
# rs.init zaten yapılmışsa hata vermesin diye OR'lu komut
|
|
||||||
command: >
|
command: >
|
||||||
bash -lc "
|
bash -lc '
|
||||||
mongosh --host mongo:27017 --quiet --eval
|
set -e
|
||||||
'try { rs.initiate({_id:\"rs0\", members:[{_id:0, host:\"mongo:27017\"}]}) } catch(e) { rs.status().ok }'
|
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:
|
deploy:
|
||||||
restart_policy:
|
restart_policy:
|
||||||
condition: none
|
condition: on-failure
|
||||||
|
delay: 5s
|
||||||
|
max_attempts: 10
|
||||||
placement:
|
placement:
|
||||||
constraints:
|
constraints:
|
||||||
- node.labels.platform == prod
|
- node.labels.platform == prod
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user