我创建了一个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无法执行。我想知道你能做什么。非常感谢。