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:
- Deixe seu contêiner do mongo apenas executar o mongo, sem as etapas para iniciar e monitorar o conjunto de réplicas.
- 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.
- 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.