我对Dockers很新,现在练习使用docker-compose初始化新的MongoDB容器。 我已经了解到将环境变量插入Dockerfile会为我创建一个管理员用户并设置密码。我还发现我可以通过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'});
我做错了什么?如何设置" newDB"和" newCol"当我运行码头工具?如何自动将一些索引添加到newCol集合中?
一点注意:我将不得不创建一些DB和集合,并且无法通过环境变量启动所有这些。
提前致谢!
答案 0 :(得分:0)
要初始化数据库,您可以使用以下脚本编写脚本:
mongo test --eval "load(youscript.js)"
scritps将位于 / data / db 文件夹
中