我是Dockers的新手,现在正在使用docker-compose初始化新的MongoDB容器。 我知道将环境变量插入Dockerfile会为我创建一个管理员用户并设置一个密码。我还发现我可以通过docker一个js文件来处理一些命令并为我创建我想要使用的结构。如何在使用MongoDB和Docker时创建新的数据库和集合?
我试图创建新的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集合中?
一张小纸条:我将不得不创造一些DB和集合,并通过环境变量初始化所有的人是不可能的..提前
谢谢!
的'use'声明实际上并没有脚本命令,而是互动的。使用诸如'db.getSiblingDB('admin');'等同于'show collections'之类的语句。请参阅文档中的[脚本编写MongoDB](https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/) –