Twój skrypt startowy nie powinien inicjować ani monitorować zestawu replik; powinny to być zadania ręczne.
Należy pamiętać, że:
- zainicjowanie zestawu replik jest wyłącznie zadaniem jednorazowym; po uruchomieniu usługa MongoDB po ponownym uruchomieniu nadal będzie częścią tego samego zestawu replik.
- zestaw replik zwykle zawiera kilka węzłów, które powinny być wymienne; jeśli każdy z nich spróbuje zainicjować zestaw replik przy starcie, wyrzucą błędy
- ponowne uruchomienie usługi jest normalnym, oczekiwanym zachowaniem; na przykład po aktualizacji do następnej wersji MongoDB lub po tym, jak poprawki do hosta serwera wymagają ponownego uruchomienia lub po awarii zasilania
- Jeśli twój skrypt spróbuje zainicjować już zainicjowany zestaw replik za każdym razem, gdy uruchamia usługę MongoDB, zwróci błędy
Zdecydowanie zalecam wprowadzenie trzech zmian:
- Pozwól kontenerowi mongo po prostu uruchomić mongo, bez konieczności inicjowania i monitorowania zestawu replik.
- Jeśli chcesz uruchomić zestaw replik, zainicjuj go ostrożnie iw kontrolowany ręczny sposób; tak samo, jeśli chcesz dodać/usunąć węzły lub zmienić konfigurację.
- Jeśli chcesz monitorować kondycję zestawu replik, użyj do tego osobnego narzędzia; niech usługa mongo po prostu wykona swoją zwykłą pracę.