MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Impossible d'exécuter le conteneur mongo avec un jeu de répliques à l'aide de docker-compose

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 :

  1. Laissez votre conteneur mongo exécuter mongo, sans les étapes d'initialisation et de surveillance de l'ensemble de répliques.
  2. 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.
  3. 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.