docker mongo 用于单个仅限主节点副本集用于开发?

问题描述

这是 dockerfile 中迄今为止为我们提供良好服务的部分。但是,现在我需要将其转换为单节点副本集(用于事务工作)。我不想要任何辅助节点或仲裁器 - 只是主节点。我缺少什么才能使其正常工作?

mongo:
  image: mongo:4.4.3
  container_name: mongo
  restart: unless-stopped
  environment:
    MONGO_INITDB_ROOT_USERNAME: root
    MONGO_INITDB_ROOT_PASSWORD: myPass
  command: mongod --port 27017
  ports:
    - '27017:27017'
  volumes:
    - ./data/mongodb:/data/db
    - ./data/mongodb/home:/home/mongodb/
    - ./configs/mongodb/mongo-init.sh:/docker-entrypoint-initdb.d/mongo-init.sh:ro

解决方法

开始工作了。我在上面的问题中将以下内容插入到块中:

hostname: mongodb
volumes:
  - ./data/mongodb/data/log/:/var/log/mongodb/
# the healthcheck avoids the need to initiate the replica set
healthcheck:
  test: test $$(echo "rs.initiate().ok || rs.status().ok" | mongo -u root -p imagiaRoot --quiet) -eq 1
  interval: 10s
  start_period: 30s