首页 > 解决方案 > 如何在 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 无法执行。想知道你能做什么。非常感谢。

标签: mongodbdockerdocker-composedockerfilereplicaset

解决方案


推荐阅读