
Ansible을 사용하여 내 docker 컨테이너의 mongodb를 3.6에서 4.2로 업데이트하려고 시도하지만 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.
이 문서를 업데이트하는 방법은 무엇입니까?
다음과 같은 빌드 후 명령(그렇게 부르자)을 실행해 보았습니다.
- 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를 3.6에서 4.2로 실제로 업그레이드하는 방법은 무엇입니까? Ansible 및 docker-compose를 사용합니다.
답변1
4.0으로 업그레이드한 다음 featureCompatibilityVersion을 4.0으로 설정하고 다시 4.2로 업그레이드한 후 featureCompatibilityVersion을 4.2로 설정하여 이 문제를 해결했습니다.
답변2
예, MongoDB를 사용하면 한 번의 업데이트로 3.6에서 4.2로 이동할 수 없으며, 필요한 버전을 얻을 때까지 다음 버전으로 이동해야 합니다.