Вашият стартиращ скрипт не трябва да инициализира или наблюдава набора от реплики; това трябва да са ръчни задачи.
Трябва да имате предвид, че:
- инициирането на комплект реплики е строго еднократна работа; след като бъде инициирана, услугата MongoDB, когато се рестартира, ще продължи да бъде част от същия набор от реплики.
- наборът реплики обикновено съдържа няколко възела, които трябва да са взаимозаменяеми; ако всеки от тях се опита да инициализира комплекта реплики при стартиране, те ще генерират грешки
- рестартирането на услуга е нормално, очаквано поведение; например, когато надстроите до следващата версия на MongoDB или след като корекциите на хоста на вашия сървър изискват рестартиране, или след прекъсване на захранването
- ако вашият скрипт се опитва да инициализира вече инициализирана реплика при всяко стартиране на услугата MongoDB, той ще генерира грешки
Горещо ви препоръчвам да направите три промени:
- Нека вашият mongo контейнер просто изпълнява mongo, без стъпките за иницииране и наблюдение на комплекта реплики.
- Ако искате да стартирате набор от реплики, инициирайте го внимателно и по контролиран ръчен начин; същото, ако искате да добавите/премахнете възли или да преконфигурирате.
- Ако искате да наблюдавате изправността на вашия комплект реплики, използвайте отделен инструмент, за да направите това; оставете услугата mongo просто да върши обичайната си работа.