Votre script de démarrage ne doit pas initialiser ni surveiller le jeu de répliques ; il devrait s'agir de tâches manuelles.
Vous devez garder à l'esprit que :
- l'initiation d'un jeu de répliques est strictement une tâche ponctuelle ; une fois lancé, le service MongoDB, une fois redémarré, continuera à faire partie du même jeu de répliques.
- un jeu de répliques contient normalement plusieurs nœuds qui doivent être interchangeables ; si chacun d'eux essaie d'initialiser le jeu de répliques au démarrage, ils lanceront des erreurs
- le redémarrage d'un service est un comportement normal et attendu ; par exemple lorsque vous mettez à niveau vers la prochaine version de MongoDB, ou après que les correctifs de votre serveur hôte nécessitent un redémarrage, ou après une panne de courant
- si votre script essaie d'initialiser un jeu de répliques déjà initialisé à chaque fois qu'il démarre le service MongoDB, il générera des erreurs
Je vous recommande fortement d'apporter trois modifications :
- Laissez votre conteneur mongo exécuter mongo, sans les étapes d'initialisation et de surveillance de l'ensemble de répliques.
- Si vous souhaitez exécuter un jeu de répliques, lancez-le avec précaution et de manière manuelle contrôlée ; idem si vous souhaitez ajouter/supprimer des nœuds, ou reconfigurer.
- Si vous souhaitez surveiller la santé de votre jeu de répliques, utilisez un outil distinct pour le faire ; laissez le service mongo faire son travail ordinaire.