我对Docker非常陌生,现在通过使用docker-compose初始化新的MongoDB容器来进行练习。
我了解到,将环境变量插入Dockerfile将为我创建一个admin用户并设置一个密码。我还发现,我可以向docker传递一个js文件,该文件将处理一些命令并为我创建要使用的结构。
我试图创建一个新的JS文件并向其中写入一些Mongo指令,但是每次我运行它时都会遇到此错误:mongo-1 | 2017-06-10T12:28:08.153+0000 E QUERY [thread1] SyntaxError: missing ; before statement @/docker-entrypoint-initdb.d/mongo_setup.js:1:4
我的JS看起来像这样:
use admin;
db.auth('admin', 'somepassword');
use newDB;
db.createCollection('newCol');
newCol = db.getCollection('newCol');
newCol.insert({'hello':'world'});
我做错什么了?运行docker时如何设置“newDB”和“newCol”?如何自动将一些索引添加到newCol集合中?
注意:我将必须创建一些数据库和集合,并不可能通过环境变量来启动它们。
谢谢你!
最佳答案
要初始化数据库,可以使用以下脚本:
mongo test --eval "load(youscript.js)"
这些脚本将位于/ data / db文件夹中
关于mongodb - 将MongoDB与Docker结合使用时如何创建新的数据库和集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44473394/