【问题标题】:mongodb created by Docker-compose, doesn't create initial db?由Docker-compose创建的mongodb,不创建初始数据库?
【发布时间】:2020-10-06 21:54:56
【问题描述】:

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?

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

【问题讨论】:

    标签: mongodb docker docker-compose


    【解决方案1】:

    数据库是在执行需要它的操作时按需创建的。

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

    【讨论】:

    • 我在脚本中添加了一个插入(见编辑过的问题),但什么也没发生......
    • 我还添加了“使用 devDB”和 db.insert.item...但我仍然什么也没看到
    • 脚本是否正在运行?
    • 好问题...我没有看到它在日志中运行...那为什么呢?
    • 我试图删除所有以前的容器并挂载一个数据卷。似乎用户是创建的,但不是数据库。不明白为什么
    猜你喜欢
    • 1970-01-01
    • 2020-07-11
    • 2023-04-10
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多