sql >> Base de Datos >  >> NoSQL >> MongoDB

No se puede ejecutar el contenedor mongo con el conjunto de réplicas usando docker-compose

Su secuencia de comandos de inicio no debe inicializar ni monitorear el conjunto de réplicas; esas deberían ser tareas manuales.

Debes tener en cuenta que:

  • iniciar un conjunto de réplicas es estrictamente un trabajo único; una vez iniciado, el servicio MongoDB, cuando se reinicie, seguirá formando parte del mismo conjunto de réplicas.
  • un conjunto de réplicas normalmente contiene varios nodos que deben ser intercambiables; si cada uno de ellos intenta inicializar el conjunto de réplicas al inicio, arrojarán errores
  • reiniciar un servicio es un comportamiento normal y esperado; por ejemplo, cuando actualiza a la próxima versión de MongoDB, o después de que los parches en el host de su servidor requieran un reinicio, o después de un corte de energía
  • si su secuencia de comandos intenta inicializar un conjunto de réplicas ya inicializado cada vez que inicia el servicio MongoDB, arrojará errores

Le recomiendo encarecidamente que realice tres cambios:

  1. Deje que su contenedor mongo simplemente ejecute mongo, sin los pasos para iniciar y monitorear el conjunto de réplicas.
  2. Si desea ejecutar un conjunto de réplicas, inícielo con cuidado y de forma manual controlada; ídem si desea agregar/eliminar nodos o reconfigurar.
  3. Si desea monitorear el estado de su conjunto de réplicas, use una herramienta separada para hacerlo; deje que el servicio mongo simplemente haga su trabajo normal.