mongodb - 如何在 dockerfile 模式下设置 Mongo 副本集
问题描述
我创建了一个dockerfile文件来构建Mongo副本集。开始创建副本集是没有问题的,但是在配置Mongo副本时,我不想手动进入Mongo shell默认配置,这也是麻烦,所以我在创建docker的时候自动执行了一个脚本来完成自动配置,试了很多方法,下面我的具体方法没有运行。工作并运行脚本以下是我的详细文档
dockerfile
FROM mongo:3.4
ENV AUTO_RUN_DIR /docker-entrypoint-initdb.d
COPY ./setup.js /docker-entrypoint-initdb.d/
RUN chmod +x /docker-entrypoint-initdb.d/setup.js
ENTRYPOINT ["/docker-entrypoint-initdb.d/setup.js"]
setup.js
#!/bin/bash
echo "Started.."
mongod --replSet replset0
mongo 127.0.0.1/admin -u test -p test --authenticationDatabase "admin"<<EOF
var cfg = {
"_id": "replset0",
"members": [
{
"_id": 0,
"host": "192.168.1.233:27018"
}
]
};
rs.initiate(cfg, { force: true });
rs.reconfig(cfg, { force: true });
EOF
exec "$@"
执行完mongod --replSet replset0, mongo 无法执行。想知道你能做什么。非常感谢。
解决方案
推荐阅读
- user-interface - 将服务中的项目加载到单个选择中
- r - 如何从交叉验证中排除截距
- angular - 如何在不刷新组件属性更改的整个页面的情况下更新 DOM
- android - 将带有字符串输入的 tensorflow keras 模型转换为 tf lite 模型。(手动解码 unicode 字符串张量)
- javascript - 当我们控制台 ([] +50) 或 ([] -50) 时,javascript 内部会发生什么类型转换?
- php - 调用发送函数后如何获取 Laravel 邮件响应?
- android - Fragment onCreate(), onCreateView() & onActivityCreated() 在创建父 Activity 时都调用了两次
- angular - 从组件中的 angular.json 获取 deployUrl
- html - 媒体查询在调整 chrome 大小但不能在 chrome 中切换设备响应模式时有效
- c++ - 传递右值与左值向量