MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Não é possível executar o contêiner mongo com o conjunto de réplicas usando o docker-compose


Seu script de inicialização não deve inicializar ou monitorar o conjunto de réplicas; essas devem ser tarefas manuais.

Você deve ter em mente que:
  • iniciar um conjunto de réplicas é estritamente um trabalho único; uma vez iniciado, o serviço MongoDB, quando reiniciado, continuará fazendo parte do mesmo conjunto de réplicas.
  • um conjunto de réplicas normalmente contém vários nós que devem ser intercambiáveis; se cada um deles tentar inicializar o conjunto de réplicas na inicialização, eles lançarão erros
  • reiniciar um serviço é um comportamento normal e esperado; por exemplo, quando você atualiza para a próxima versão do MongoDB, ou após os patches para o host do servidor exigirem uma reinicialização, ou após uma queda de energia
  • se seu script tentar inicializar um conjunto de réplicas já inicializado toda vez que iniciar o serviço MongoDB, ele gerará erros

Eu recomendo fortemente que você faça três alterações:
  1. Deixe seu contêiner do mongo apenas executar o mongo, sem as etapas para iniciar e monitorar o conjunto de réplicas.
  2. Se você deseja executar um conjunto de réplicas, inicie-o com cuidado e de maneira manual controlada; idem se você deseja adicionar/remover nós ou reconfigurar.
  3. Se você quiser monitorar a integridade de seu conjunto de réplicas, use uma ferramenta separada para fazer isso; deixe o serviço mongo fazer seu trabalho normal.