
Tentando atualizar o mongodb em meu contêiner docker de 3.6 para 4.2 usando ansible, mas o contêiner do docker continua reiniciando.
O motivo da reinicialização é porque o nível de compatibilidade está definido como 3.6.
Mais especificamente:
IMPORTANT: UPGRADE PROBLEM: Found an invalid featureCompatibilityVersion document(ERROR: BadValue: Invalid value for version, found 3.6, expected '4.2' or '4.0'. Contents of featureCompatibilityVersion document in admin.system.version: { _id: "featureCompatibilityVersion", version: "3.6" }. See http://dochub.mongodb.org/core/4.0-feature-compatibility.). If the current featureCompatibilityVersion is below 4.0, see the documentation on upgrading at http://dochub.mongodb.org/core/4.0-upgrade-fcv.
Como atualizar este documento?
Tentei executar um comando pós-compilação ansible (vamos chamá-lo assim), que se parece com:
- name: set compatibility level
state: started
shell: "docker exec mongodb-primary bash -c 'mongo --eval \"db.adminCommand( { setFeatureCompatibilityVersion: \"4.2\" } )\"'"
become: True
become_user: root
register: result
Bem como tentei várias outras opções, todas sem esperança.
E esse script ansible está falhando porque não consegue se conectar ao mongo. A conexão foi recusada, diz. Mongo ainda não acordou, presumo.
Então, como realmente atualizar o mongo no contêiner docker de 3.6 para 4.2? Usando ansible e docker-compose.
Responder1
Resolvido esse problema atualizando para 4.0, definindo featureCompatibilityVersion como 4.0, atualizando novamente para 4.2 e, em seguida, definindo featureCompatibilityVersion como 4.2
Responder2
Sim, com o MongoDB você não pode pular de 3.6 para 4.2 em uma atualização, você tem que ir para a próxima versão e assim por diante até obter a versão necessária.