Обновите контейнер docker mongodb replicaset с помощью ansible

Обновите контейнер docker mongodb replicaset с помощью ansible

Пытаюсь обновить mongodb в моем контейнере docker с 3.6 до 4.2 с помощью ansible, но контейнер docker продолжает перезапускаться.
Причина перезапуска в том, что уровень совместимости установлен на 3.6.
А именно:

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.

Как обновить этот документ?
Попробовал запустить ansible post-build команду (назовем ее так), которая выглядит так:

  - 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

А также перепробовал кучу других вариантов, все без надежды.
И этот скрипт ansible не работает, так как не может подключиться к mongo. Соединение отклонено, говорит он. Mongo еще не запущен, я так полагаю.

Итак, как на самом деле обновить mongo в контейнере docker с 3.6 до 4.2? Используя ansible и docker-compose.

решение1

Решил эту проблему, обновив до 4.0, затем установив featureCompatibilityVersion на 4.0, затем снова обновив до 4.2, затем установив featureCompatibilityVersion на 4.2

решение2

Да, с MongoDB вы не можете перейти с версии 3.6 на 4.2 за одно обновление, вам придется переходить на следующую версию и так далее, пока не получите нужную вам версию.

Связанный контент