Skip to main content

Ошибка запуска контейнера

Описание ошибки: 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
warning

Отсутствие результатов поиска не будет свидетельствовать о том, что ошибки нет.

Пример ошибки:

{"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, при успешном выполнении команды вернуть переменные к базовым значениям.

Порядок действий:

  1. Открыть файл 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
  1. Проверить текущую версию FCV с помощью команды:
db.adminCommand({getParameter: 1, featureCompatibilityVersion: 1})
  1. Если версия FCV ниже 5.0 следует обновить ее с помощью команды:
db.adminCommand({setFeatureCompatibilityVersion: '5.0})
  1. Запустить обновление MongoDB с помощью команды:
ansible-playbook -i hosts.yml playbook/squadus/infra.yml -t mongodb
  1. Проверить статус контейнера MongoDB с помощью команды:
docker ps -a | grep -i mongo
  1. Открыть файл inventory/group_vars/squadus/main.yml и восстановить первоначальные значения переменных.