【问题标题】:docker mongo for single (primary node only) replica set (for development)?docker mongo 用于单个(仅限主节点)副本集(用于开发)?
【发布时间】:2021-06-19 14:23:38
【问题描述】:

这是 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

【问题讨论】:

标签: mongodb docker-compose mongodb-replica-set


【解决方案1】:

搞定了。我在上面的问题中插入了以下内容:

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

【讨论】:

  • 这为我解决了!谢谢!
  • 我强烈建议您使用 bitnami 图像。他们维护着非常易于使用的版本,不需要像这样奇怪的 hack。
  • 有没有办法只执行一次rs.initiate(),好像每10秒执行一次...?
  • 代替这个,试试 bitnami 图像。你不会后悔的。
猜你喜欢
  • 2016-08-15
  • 1970-01-01
  • 2018-02-18
  • 2018-03-18
  • 2019-11-29
  • 2023-04-04
  • 2017-02-01
  • 2020-08-12
  • 1970-01-01
相关资源
最近更新 更多