首页 > 解决方案 > 我可以在 mongo Docker 中创建用户、数据库和集合吗?

问题描述

我正在关注 Mongo 文档,用于在第一次启动容器时使用数据库和集合创建 init 用户,但是当我创建具有读写权限的用户时,我无法使用集合“person_file_upload”访问我的“仪表板”数据库,并出现权限被拒绝警告.

我只想创建一个非root用户来读写我的数据库。我的脚本有什么问题吗?

version: '3.8'

services:
  mongo:
    image: mongo:4.4.3-bionic
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: mypassword
      MONGO_INITDB_DATABASE: admin
    volumes:
      - ./proativa-dashboard-mongo/data:/data/db
      - ./proativa-dashboard-mongo/init/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
    restart: always
    ports:
      - "127.0.0.1:27017:27017"
    networks:
      - mongo
    container_name: mongo
db.createUser({
    user: 'dashboard',
    pwd: 'dashboard',
    roles: [{
        role: 'readWrite',
        db: 'admin',
    }]
});

db = db.getSiblingDB('dashboard');
db.createCollection('person_file_upload');

标签: mongodbdockerdocker-composedockerfile

解决方案


推荐阅读