Docker-compose创建的mongodb,不创建初始数据库吗?

时间:2020-10-06 21:54:56

标签: mongodb docker docker-compose

docker-compose.yml

version: '3.7'

services:
 mongodb:
    image: mongo:latest
    container_name: mongodb
    restart: always
    environment:
        MONGO_INITDB_ROOT_USERNAME: devuser
        MONGO_INITDB_ROOT_PASSWORD: devuser
        MONGO_INITDB_DATABASE: devDB
    ports:
        - 27017:27017
    volumes:
        - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro

mongo-init.js

 db.createUser(
    {
        user: "devuser",
        pwd: "devuser",
        roles: [
            {
                role: "readWrite",
                db: "devDB"
            }
        ]
    }
 );
use devDB;
db.item.insert(
 [
   {
     "id": "xsd4cv89t5f5um4b",
     "name": "r44d7piq",
     "price": 1485521573482,
     "dateCreation": 1485521569056
   }  
 ]

);

我运行它

 docker-compose up --build -d mongodb

我连接到mongodb

mongo -u devuser -p devuser

我检查数据库:

> show dbs
admin   0.000GB
config  0.000GB   
local   0.000GB

为什么我看不到devDB?

在我看来,这很标准,我从几个示例中复制了上面的内容...

1 个答案:

答案 0 :(得分:0)

执行需要的数据库时,将根据需要创建数据库。

您尚未执行任何操作,因此没有创建数据库。