2017-06-10 37 views
0

我是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和集合,並通過環境變量初始化所有的人是不可能的..提前

謝謝!

+0

的'use'聲明實際上並沒有腳本命令,而是互動的。使用諸如'db.getSiblingDB('admin');'等同於'show collections'之類的語句。請參閱文檔中的[腳本編寫MongoDB](https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/) –

回答

0

要使用初始化,您可以使用腳本的數據庫:

mongo test --eval "load(youscript.js)" 

的scritps將在/數據/ DB文件夾

相關問題