Ошибка запуска контейнера
Описание ошибки: MongoDB обновилась до версии 6, но при запуске контейнер останавливается с ошибкой.
MongoDB версии 6 поддерживает минимальную версию FCV 5.0. При обновлении ansible ролью изменение версии FCV c 4.4 до 5.0 может быть выполнено некорректно. Для проверки лога на наличие ошибки, вызванной версией FCV, следует выполнить команду:
docker logs mongodb_squadus
Для удобства поиска по тексту лога можно указать дополнительные параметры. Например:
docker logs mongodb_squadus | grep -i fcv
Внимание
Отсутствие результатов поиска не будет свидетельствовать о том, что ошибки нет.
Пример ошибки:
{"t":{"$date":"2025-10-06T18:22:33.721+03:00"},"s":"F", "c":"CONTROL", "id":20573, "ctx":"initandlisten","msg":"Wrong mongod version","attr":{"error":"UPGRADE PROBLEM: Found an invalid featureCompatibilityVersion document (ERROR: Location4926900: Invalid featureCompatibilityVersion document in admin.system.version: { _id: \"featureCompatibilityVersion\", version: \"4.4\" }. See https://docs.mongodb.com/master/release-notes/5.0-compatibility/#feature-compatibility. :: caused by :: Invalid feature compatibility version value, expected '5.0' or '5.3' or '6.0. See https://docs.mongodb.com/master/release-notes/5.0-compatibility/#feature-compatibility.). If the current featureCompatibilityVersion is below 5.0, see the documentation on upgrading at https://docs.mongodb.com/master/release-notes/5.0/#upgrade-procedures."}}
Решение: Временно откатить версию контейнера MongoDB до версии 5, при успешном выполнении команды вернуть переменные к базовым значениям.
Порядок действий:
- Открыть файл
inventory/group_vars/squadus/main.yml, сохранить текущие значения и установить переменным следующие значения:
mongodb_acceptable_version: 5
mongodb_intermediate_image_name: "mongodb5"
mongodb_latest_image_name: "{{ mongodb_intermediate_image_name }}"
mongodb_latest_image_tag: "{{ mongodb_intermediate_image_tag }}"
mongodb_binary_upgrade_enabled: true
- Проверить текущую версию FCV с помощью команды:
db.adminCommand({getParameter: 1, featureCompatibilityVersion: 1})
- Если версия FCV ниже 5.0 следует обновить ее с помощью команды:
db.adminCommand({setFeatureCompatibilityVersion: '5.0})
- Запустить обновление MongoDB с помощью команды:
ansible-playbook -i hosts.yml playbook/squadus/infra.yml -t mongodb
- Проверить статус контейнера MongoDB с помощью команды:
docker ps -a | grep -i mongo
- Открыть файл
inventory/group_vars/squadus/main.ymlи восстановить первоначальные значения переменных.