gpt4 book ai didi

mongodb - 使用 docker 和 fig 设置 mongodb 副本集的正确方法是什么?

转载 作者:IT老高 更新时间:2023-10-28 13:30:39 25 4
gpt4 key购买 nike

使用 docker 和 fig 设置 mongodb 副本集的正确方法是什么?

我想关注官方 mongodb tutorials创建 fig.yml包含一些副本集的文件,但总是被如何调用 rs.initiate() 阻止和 rs.add("<hostname><:port>")正确。

我找到了 this SO answer解释为什么我不能从 shell 开始。 ,无需调用 rs.initiate() ,那我该怎么做呢?

哦,我正在使用 mongo:latest (v2.6.5) 作为基础镜像,没有任何修改。

最佳答案

我遇到了类似的问题,这就是我所做的。我正在使用 docker-compose 而不是图。

在我的 docker-compose 中。

mongors:                                                                                                
image: mongo
ports:
- "27017:27017"
volumes:
- ./mongo:mongo
entrypoint: mongo/entrypoint.sh

在我的 entrypoint.sh 中:

#!/bin/bash
mongod --port 27018 --replSet rs0 --fork --syslog --smallfiles
mongo --port 27018 --eval "rs.initiate({_id : 'rs0', members : [{_id : 0, host : 'localhost:27018'}]})"
mongo --port 27018 --eval "while(true) {if (rs.status().ok) break;sleep(1000)};"

确保它是可执行的:

chmod +x mongo/entrypoint.sh

这有点hacky,但它有效:)

关于mongodb - 使用 docker 和 fig 设置 mongodb 副本集的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27449306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com